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

Проверить количество скобок - C++

Восстановить пароль Регистрация
 
alexbec-2012
 Аватар для alexbec-2012
0 / 0 / 0
Регистрация: 27.05.2013
Сообщений: 80
27.05.2013, 15:48     Проверить количество скобок #1
Проверить имеется ли в заданном тексте баланс открывающих и закрывающих круглых скобок т. е. верно ли что можно установить взаимно однозначное соответствие открывающих и закрывающих скобок со следующими свойствами:
а) открывающияся скобка всегда предшествует закрывающей
б) первый и последний символ текста - пара соответствующих друг другу скобок

Добавлено через 1 час 8 минут
Помогите!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2013, 15:48     Проверить количество скобок
Посмотрите здесь:

C++ Проверить баланс скобок
C++ Проверить, соблюдается ли равенство открывающихся и закрывающихся скобок
C++ Строки. Проверить правильность задания круглых скобок
C++ Проверить правильность расстановки скобок
C++ Проверить баланс скобок в тексте программы
C++ Проверить корректность расположения скобок
Проверить правильность расстановки в тексте круглых скобок C++
Проверить что количество открытых скобок равно количеству закрытых C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
27.05.2013, 15:54     Проверить количество скобок #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
25
26
27
28
29
#include <iostream>
#include <stack>
#include <string>
 
using namespace std;
 
bool ChkBrackets(const string &Str)
{
    stack<char> Brackets;
 
    for (auto i = 0; i != Str.size(); i++)
        if ( Str[i] == '(' )
            Brackets.push(Str[i]);
        else if ( Str[i] == ')' )
                if (!Brackets.empty() && Brackets.top() == '(')
                    Brackets.pop();
                else return false;
    return Brackets.empty();
}
 
int main()
{
    string str;
    getline(cin,str);
 
    if (ChkBrackets(str)) cout << "YES";
    else cout << "NO";
    return 0;
}
Yandex
Объявления
27.05.2013, 15:54     Проверить количество скобок
Ответ Создать тему
Опции темы

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