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

Можно ли добавить в последовательность из различных скобок цифры и знаки, чтобы получилось правильное арифметическое выражение? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сравнить строки из xls-файлов на совпадение символов и создать файлы с результатами. http://www.cyberforum.ru/cpp-beginners/thread1095750.html
Задача выглядит так. Имеется 2 xls-файла, которые надо сравнить. К примеру, в первом файле цифры с 1,2,3,5,6,7,8,10 А во втором только цифры 2,4,6,8,10. Соответственно результат в третьем...
C++ Составить класс, который отыскивает проход по лабиринту Помогите пожалуйста. Составить класс, который отыскивает проход по лабиринту. Лабиринт представляется в виде матрицы, состоящей из квадратов. Каждый квадрат либо открыт, либо закрыт. Вход в... http://www.cyberforum.ru/cpp-beginners/thread1095728.html
C++ Почему не производится операция деления?
Есть код, приведенный ниже. Никак не могу разобраться, почему не производится операция деления при заполнении массива p, заполнения тоже не производится. Пробовала операцию просто присваивания,...
C++ Исключения
читаю про исключения, сама концепция понятна, но стоит ли вообще заострять на исключениях своё внимание? например описан класс exception, от него куча всяких производных классов типа logic_error и...
C++ error C2664: strcmp: невозможно преобразовать параметр 1 из "char (*)[20]" в "const char *" http://www.cyberforum.ru/cpp-beginners/thread1095685.html
1>c:\proect\8\8\8.cpp(64): error C2664: strcmp: невозможно преобразовать параметр 1 из "char (*)" в "const char *" for(int i = 0; i< 5; i++) { wr_struc (list); if...
C++ тестирование менеджера памят Доброго времени суток всем, в универе дали ребяткам лабы: 1. Реализовать менеджер памяти с выделением блоков различного размера. 2. Реализовать менеджер памяти с перемещающимися блоками.... подробнее

Показать сообщение отдельно
Eldies
90 / 81 / 28
Регистрация: 06.02.2014
Сообщений: 120
13.02.2014, 17:14
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
#include <string>
#include <stack>
 
bool checkString(std::string str)
{
    std::stack<char> sta; 
    for(int i = 0; i < str.length(); ++i)
    {
        if ((str[i] =='(') || (str[i] =='{') || (str[i] =='['))
            sta.push(str[i]); // если открывающая скобка - помещаем ее в стек
        else
        { // если не открывающая 
            if (sta.size() == 0)
                return false; // если стек пуст, значит скобочная последовательность неправильная.
            char c = sta.top(); // берем последнюю открывающую скобку
            sta.pop();
 
            if ((c == '(' && str[i] != ')') ||  // если тип последней открывающей скобки 
                (c == '{' && str[i] != '}') ||  // не совпадает с текущей закрывающей скобкой - 
                (c == '[' && str[i] != ']'))    // - скобочная последовательность неправильная
                return false; 
        }
    }
    return (sta.size() == 0);   // если после обработки строки, остались 
                        // незакрытые скобки, скобочная последовательность неправильная
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru