Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
20 / 0 / 1
Регистрация: 10.01.2015
Сообщений: 11
1

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

08.02.2015, 17:58. Показов 1528. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
дана последовательность скобок. Проверить является ли она правильной. Например: ([{}])() -правильное выражение, а (){}{) неправильное.
Задачу с одинаковыми скобками решил без стека, а тут мне каж нужно с помощью стека. ну вобщем дня два путал себе мозги, не смог решить
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.02.2015, 17:58
Ответы с готовыми решениями:

Правильность скобок в строке
Нужно проверить правильно расставлены скобки в тексте или нет, выдает ошибку после первой Then Dim...

Проверка скобок на правильность
Здравствуйте, есть код для определения баланса скобок. Но ситуация когда скобки написано так ")("...

Проверка на правильность расстановки скобок
Дан текст. Проверить, правильно ли в нем расставлены круглые скобки (т. е. находится ли справа от...

Проверка строки(в стеке) на правильность растановки скобок
Есть строка символов, признаком конца которой является ;. В строке могут быть фигурные, круглые,...

2
15146 / 6419 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
08.02.2015, 22:27 2
Лучший ответ Сообщение было отмечено Апострофф как решение

Решение

Решение "в лоб", стек на коллекции
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Function Skobki(s$) As Boolean
Dim i&, c$
With New Collection
  .Add "dummy"
  For i = 1 To Len(s)
    c = Mid$(s, i, 1)
    Select Case c
    Case "(", "[", "{"
      .Add c, Before:=1
    Case ")"
      If .Item(1) = "(" Then .Remove 1 Else GoTo 1
    Case "}"
      If .Item(1) = "{" Then .Remove 1 Else GoTo 1
    Case "]"
      If .Item(1) = "[" Then .Remove 1 Else GoTo 1
    End Select
  Next
  Skobki = .Count = 1
1 Exit Function
End With
End Function
Тест в окне Immediate
Код
?skobki("Например: ([{}])() -пра")
True
?skobki("Например: ([{})]() -пра")
False
?skobki("Например: ([{")
False
Добавлено через 35 минут
Так получше будет - в качестве буфера стека используется сама копия строки
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Function Skobki(ByVal s$) As Boolean
Dim i&, j&, c$
On Error GoTo 1
  For i = 1 To Len(s)
    c = Mid$(s, i, 1)
    Select Case c
    Case "(", "[", "{"
      j = j + 1
      Mid$(s, j, 1) = c
    Case ")"
      If Mid$(s, j, 1) = "(" Then j = j - 1 Else Exit For
    Case "}"
      If Mid$(s, j, 1) = "{" Then j = j - 1 Else Exit For
    Case "]"
      If Mid$(s, j, 1) = "[" Then j = j - 1 Else Exit For
    End Select
  Next
  Skobki = j = 0
1 Exit Function
End Function

Не по теме:

PS Я не "вернулся", просто мимо проходил

1
Апострофф
09.02.2015, 04:47     Проверка последовательности скобок на правильность
  #3

Не по теме:

Цитата Сообщение от Казанский Посмотреть сообщение
проходи
почаще:)

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.02.2015, 04:47

Проверить правильность расстановки в строке скобок (баланс открывающих и закрывающих скобок)
помогите с решением задачи. Запросить у пользователя ввод значений согласно варианту. Выполнить...

Правильность Скобок
Суть задачи такова:Дана строка,состоящая только из скобок и латинских символов. Правильные строки:...

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

Правильность расстановки скобок
Всё обыскал но никак не могу найти именно то, что мне нужно, а именно: Со всем в принципе...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru