Проверка на правильность расстановки скобок - C#
Формулировка задачи:
Дан текст. Проверить, правильно ли в нем расставлены круглые скобки (т. е. находится ли справа от каждой открывающей скобки соответствующая ей закрывающая скобка, а слева от каждой закрывающей — соответствующая ей закрывающая). Предполагается, что внутри каждой пары скобок нет других скобок.
а) Ответом должны служить слова да или нет.
б) В случае неправильности расстановки скобок:
если имеются лишние правые (закрывающие) скобки, то выдать сооб-щение с указанием позиции первой такой скобки;
если имеются лишние левые (открывающие) скобки, то выдать сообще-ние с указанием количества таких скобок.
Если скобки расставлены правильно, то сообщить об этом.
первая рабочая часть есть
uses crt;
var
s:string;
i,m,n:integer;
begin
clrscr;
writeln('введите текст');
readln(s);
for i:=1 to length(s) do
m:=0;
n:=0;
if s[i]='(' then
m:=m+1;
if s[i]=')' then
n:=n+1;
if m=n then
writeln ('скобки расставлены неправильно') else
writeln ('скобки расставлены правильно');
readln;
end.Решение задачи: «Проверка на правильность расстановки скобок»
textual
Листинг программы
using System;
class Program
{
static void Main()
{
string s;
while ((s = Console.ReadLine()) != null)
{
int brackets = 0;
int i;
for (i = 0; i < s.Length; i++)
{
if (s[i] == '(')
{
brackets++;
}
else if (s[i] == ')' && --brackets < 0)
{
break;
}
}
Console.WriteLine(brackets);
Console.WriteLine(i);
}
}
}