static string CheckParenthesisBalance(string line)
int openingParsCount = 0;
int closingParsCount = 0;
for (int i = 0; i < line.Length; i++)
if (openingParsCount < closingParsCount)
return "Лишняя закрывающая скобка";
if (openingParsCount > closingParsCount)
return "Не хватает закр. скобок: " + (openingParsCount - closingParsCount);
public static void Main(string[] args)
string line1 = "((1+3)((((4+(3-5)))";
string line2 = "((1+3)()(4+(3-5)))";
string line3 = "((1+3)())(4+(3-5)))";
string result1 = CheckParenthesisBalance(line1);
string result2 = CheckParenthesisBalance(line2);
string result3 = CheckParenthesisBalance(line3);
Console.Write(result1 + '\n' + result2 + '\n' + result3);