
Сообщение от
Mayonez
стек здесь просто для того, что так сказано в условии. Это НЕВЕРНОЕ использование стека
По-моему как раз само то) Я бы так сделал:
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| #include<iostream>
#include<stack>
int main(){
std::stack<char> brackets;
std::string str;
std::getline(std::cin, str);
for(int i=0; i<str.length(); i++){
if(str[i] == '(')
brackets.push(str[i]);
else if(!brackets.empty())
brackets.pop();
else {
std::cout<<"Unbalance in "<<i+1<<" brackets"<<std::endl;
return 0;
}
}
std::cout<<(brackets.empty() ? "Balance OK!" : "Balance not OK, unnecessary left brackets")<<std::endl;
return 0;
} |
|
без проверки на "левые" символы.