C++使用棧解決括號匹配問題
阿新 • • 發佈:2019-01-23
#include<iostream> #include<stack> #include<string> using namespace std; bool Judge(string str) { //使用棧判斷括號匹配 stack <char>s; for (int i = 0; i < str.length(); i++) { switch (str[i]) { case '(': s.push('('); break; case '[': s.push('['); break; case '{': s.push('{'); break; case ')': if (s.top() == '(') { s.pop(); } else { return false; } break; case ']': if (s.top() == '[') { s.pop(); } else { return false; } break; case '}': if (s.top() == '{') { s.pop(); } else { return false; } break; } } if (s.empty()) { return true; } else { return false; } } int main() { string str; cin >> str; cout << Judge(str) << endl; system("pause"); return 0; } /* [([][])]{()} [(){]} */