Форум программистов, компьютерный форум CyberForum.ru

Дана строка символов проверить правильность расстановки круглых и квадратных скобок в выражениях - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
tarasman
-121 / 0 / 0
Регистрация: 10.02.2012
Сообщений: 119
04.07.2012, 15:18     Дана строка символов проверить правильность расстановки круглых и квадратных скобок в выражениях #1
дана строка символов проверить правильность расстановки круглых и квадратных скобок в выражениях
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.07.2012, 15:18     Дана строка символов проверить правильность расстановки круглых и квадратных скобок в выражениях
Посмотрите здесь:

Проверить правильность расстановки и вложенности скобок в тексте (абстрактный стек) C++
C++ Проверить правильность расстановки символов “/*” и “*/” для комментариев
C++ Использование стека. Дана строка символов. Проверьте правильность расстановки в ней круглых скобок.
C++ Строки. Проверить правильность задания круглых скобок
Проверка записи на соответствие условию: правильная скобочная запись из круглых и квадратных скобок C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 24.05.2012
Сообщений: 629
04.07.2012, 17:03     Дана строка символов проверить правильность расстановки круглых и квадратных скобок в выражениях #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <stack>
 
using namespace std;
 
int main() {
    stack<char> st;
    char c, c2;
    while ((c = cin.get()) != '\n')
        if (c == '(' || c == '[')
            st.push(c + 1 + (c == '['));
        else if (c == ')' || c == ']') {
            if (!st.size() || (c2 = st.top()) != c) {
                cout << "invalid\n";
                return 1;
            }
            st.pop();
        }
    if (st.size()) {
        cout << "invalid\n";
        return 1;
    }
    cout << "valid\n";
}
yleart
 Аватар для yleart
60 / 45 / 1
Регистрация: 07.10.2011
Сообщений: 139
04.07.2012, 18:24     Дана строка символов проверить правильность расстановки круглых и квадратных скобок в выражениях #3
Кот Ангенс, после вывода "valid" не хватает return 0;
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 24.05.2012
Сообщений: 629
04.07.2012, 18:48     Дана строка символов проверить правильность расстановки круглых и квадратных скобок в выражениях #4
main по умолчанию возвращает 0.
Цитата Сообщение от Кот Ангенс Посмотреть сообщение
if (!st.size() || (c2 = st.top()) != c)
Что-то я здесь затупил. Переменная c2 не нужна.
C++
1
if (!st.size() || st.top() != c)
Yandex
Объявления
04.07.2012, 18:48     Дана строка символов проверить правильность расстановки круглых и квадратных скобок в выражениях
Ответ Создать тему
Опции темы

Текущее время: 00:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru