Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <string>
- #include <iostream>
- #include <stack>
- #include <fstream>
- using namespace std;
- bool isBracketsClosed(string inputString)
- {
- stack <char> stk; //сам стек
- char currentTop; //текущий верхний элемент стека
- for (int i = 0; i < inputString.length(); i++)
- {
- if (inputString[i] == '(' || inputString[i] == '{') //если скобка открывающая пихаем её в стек
- {
- stk.push(inputString[i]);
- continue;
- }
- if (stk.empty()) //если стек пуст, то первый элемент не открывающая скобка
- {
- return false;
- }
- currentTop = stk.top();
- switch (inputString[i])
- {
- case ')':
- stk.pop();
- if (currentTop == '{')
- {
- return false;
- }
- break;
- case '}':
- stk.pop();
- if (currentTop == '(')
- {
- return false;
- }
- break;
- }
- }
- //<stack>.empty() возвращает true если стек пуст и false если нет
- return stk.empty();
- }
- /*
- ЭТУ ФУНКЦИЮ Я НАПИШУ ЗАВТРА КАЖДОМУ ОТДЕЛЬНО
- */
- //составляет строку скобок из файла
- //обрезает все переносы строк, все символы и цифры
- string makeStringBracketsFromFile(ifstream& file);
- int main()
- {
- setlocale(0, "rus");
- ifstream file("Text.txt"); //код в файле, который нужно проанализировать
- string brackets; //строка скобок
- brackets = makeStringBracketsFromFile(file); //составляем строку из файла
- file.close(); //закрываем файл
- //правильно ли у нас вложены скобки
- if (isBracketsClosed(brackets))
- {
- cout << "Все скобки на месте!";
- }
- else
- {
- cout << "Не все скобки на месте!";
- }
- cout << endl;
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement