Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
1 / 1 / 0
Регистрация: 08.02.2010
Сообщений: 22

Определить правильность расставления скобок

08.02.2010, 20:24. Показов 4643. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
уже вторую неделю мучаюсь и не могу понять что да как...

суть такова:
вводится стока состоящая из скобок (возможны и другие символы) (скобки ставятся рандомно, без какой-либо последовательности), задача состоит в том чтобы определить правильно ли были расставлены скобки то есть если скобка была открыта, она должна быть закрыта. метод решения не имеет значения.


пример: ([]){}[]({[]}) - правильно
{])[(][{]()){] - неправильно

вот так вот...

просьба помочь хоть как-то, от просто совета как можно было бы решить до самого решения. сам блок задачи мне нафиг не нужен, нужна только функция которая это делает...

если у кого-то есть идеи как это можно устроить, напишите сюда, пожалуйста...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.02.2010, 20:24
Ответы с готовыми решениями:

Определить правильность расстановок скобок в тексте
Дан файл содержащий произвольный текст. Определить правильно ли в нем расставлены скобки....

Используя Стек, Определить Правильность Расстановки Скобок
С Клавиатуры Вводится Арифметическое Выражение С Использование Круглых, Квадратных И Фигурных...

Ввести произвольный текст. Проверить, в заданном тексте количество открытых скобок равно количеству закрытых скобок.
Помогите сделать задачу: Ввести произвольный текст. Проверить, в заданном тексте количество...

5
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
08.02.2010, 20:44
Попробуйте так.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
d:=length(s);
m:=0;
k:=0;
n:=0;
for i:=1 to d do
 begin
  if s[i]='(' then m:=m+1;
  if s[i]=')' then m:=m-1;
  if s[i]='{' then n:=n+1;
  if s[i]='}' then n:=n-1;
  if s[i]='[' then k:=k+1;
  if s[i]=']' then k:=k-1;
  if (m<0) or (n<0) or (k<0) then
    begin
     write('NO');
     exit;
    end;
 end;
if (m=0) and (n=0) and (k=0) then
write('Yes')
else write('No');
1
1 / 1 / 0
Регистрация: 08.02.2010
Сообщений: 22
08.02.2010, 21:17  [ТС]
огромное спасибо тебе, человек...))
всё оказалось куда проще чем я думал...))
а я тут творил непонятно что и непонятно сколько занимал код...

осталось немножко подогнать под ту тему что надо))) но основа уже есть.
еще раз огромное спасибо!
0
 Аватар для lexus_ilia
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
09.02.2010, 01:59
KpoccoB0K, если немного подумать, то можно написать рекурсивную функцию для проверки правильности расставления скобок, за основу взять код ув. Puporev'a и убрать цикл, будет приятно смотреться, да и Вам лишняя практика не помешает.
0
1 / 1 / 0
Регистрация: 08.02.2010
Сообщений: 22
09.02.2010, 11:26  [ТС]
lexus_ilia, я не особый любитель рекурсивных функций... если возможно использование цикла, то я не побрезгую)) знаю что у рекурсии есть преимущества, и что циклы для лентяев, но по мне цикл просто удобней в использовании, если объем кода небольшой...
0
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
09.02.2010, 11:48
Цитата Сообщение от KpoccoB0K
знаю что у рекурсии есть преимущества
Единственное преимущество рекурсии - это изящность кода.
Цитата Сообщение от KpoccoB0K
я не особый любитель рекурсивных функций
Не нравится не используйте. Но как правильно написал Илья, тут дело не в том любите ли Вы рекурсивные функции или нет, тут дело в практике, которая никому не помешает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.02.2010, 11:48
Помогаю со студенческими работами здесь

Удалить часть текста, заключённую в скобки вместе со скобками. Внутри каждой пары скобок нет других скобок.
1. Удалить часть текста, заключённую в скобки вместе со скобками. Внутри каждой пары скобок нет...

Внести произвольный текст. Проверить в заданном тексте количество открытых скобок равно числу закрытых скобок
Внести произвольный текст. Проверить в заданном тексте количество открытых скобок равно числу...

В заданном предложении проверить парность расстановки круглых скобок (вложение скобок допускается)
1.В заданном предложении проверить парность расстановки круглых скобок. Вложение скобок...

Напишите программу, которая проверяет правильность расстановки скобок в выражении.
Напишите пожалуйста программу, которая проверяет правильность расстановки скобок в выражении....

Проверить правильность расстановки скобок
Дано арифметическое выражение, содержащее три вида скобок &quot;(&quot;,&quot;[&quot;,&quot;{&quot;. Проверить правильность...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru