Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Соответствие скобок (Сергей Потехин)
Author Message
Сергей Потехин
Участник форума



Joined: 25 Aug 2003
Posts: 178
Карма: 0
   поощрить/наказать

Location: Забайкалье, Чита

PostPosted: Sat Apr 07, 2007 12:47 pm (написано за 3 минуты 34 секунды)
   Post subject: Соответствие скобок
Reply with quote

Здравствуйте!
Столкнулся с проблемой анализа строки на предмет соответствия открывающихся и закрывающихся скобок.
Мой алгоритм был такой:
1) Считать количество вхождений "(" в строку
2) Считать количество вхождений ")" в строку
3) Сравниваем. Если равно, тогда все О.К.
Это будет работать для: () () (()) и т.д.
Однако что будет в случае если скобки будут расположены так: ")("? количество вхождений совпадает?

Подскажите оптимальный способ проверки?
Back to top
View user's profile Send private message
phprus
Участник форума



Joined: 25 Jul 2003
Posts: 162
Карма: 8
   поощрить/наказать

Location: Пермь

PostPosted: Sat Apr 07, 2007 1:24 pm (спустя 37 минут; написано за 1 минуту 19 секунд)
   Post subject:
Reply with quote

Сергей Потехин
В цикле проходиш по строке, если нашел "(", то прибовляеш к счетчику 1, если нашел ")", то вычитаеш 1. Если скобки расставлены верно, то внутри цикла счетчик должен быть неотрицательным, а после окончания цикла он должен быть равен нулю.
Back to top
View user's profile Send private message Send e-mail
Владимир Хоменко
Участник форума



Joined: 11 Jun 2004
Posts: 427
Карма: 42
   поощрить/наказать

Location: Николаев, Украина

PostPosted: Sat Apr 07, 2007 1:27 pm (спустя 2 минуты; написано за 22 секунды)
   Post subject:
Reply with quote

Пройтись по строке, считать количество открывающих и закрывающих скобок. Если в какой-то момент количество закрывающих больше количества открывающих, то строка неверная. Ну и естественно, после прохождения количество открывающих скобок должно быть равно количестве закрывающих.

P.S. Пока писал, уже ответили.
Back to top
View user's profile Send private message Send e-mail
Сергей Потехин
Участник форума



Joined: 25 Aug 2003
Posts: 178
Карма: 0
   поощрить/наказать

Location: Забайкалье, Чита

PostPosted: Sun Apr 08, 2007 12:44 pm (спустя 23 часа 16 минут; написано за 12 секунд)
   Post subject:
Reply with quote

Спасибо! :)
Back to top
View user's profile Send private message
Ant
Сотрудник «Лаборатории»



Joined: 17 Jun 2003
Posts: 6840
Карма: 131
   поощрить/наказать


PostPosted: Tue Apr 10, 2007 7:11 pm (спустя 2 дня 6 часов 27 минут)
   Post subject:
Reply with quote


М

Тема закрыта.
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   This topic is locked: you cannot edit posts or make replies. All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML