uva673 Parentheses Balance(模拟+栈)
2013-07-25 19:13
405 查看
题意:判断给定的括号是否匹配平衡。
思路:用栈来模拟 遇到'(' 或'['的时候入栈, 遇到 ')'或']'跟栈定匹配。匹配成功则栈顶出栈。 最后栈空则括号平衡。陷阱: 小心))))))))))】】】】】】】】括号组
算法复杂度: 有几个符号就要入栈、匹配几次, 所以是o(N)
思路:
思路:用栈来模拟 遇到'(' 或'['的时候入栈, 遇到 ')'或']'跟栈定匹配。匹配成功则栈顶出栈。 最后栈空则括号平衡。陷阱: 小心))))))))))】】】】】】】】括号组
算法复杂度: 有几个符号就要入栈、匹配几次, 所以是o(N)
思路:
#include <cstdio> #include <stack> using namespace std; int main() { int n; stack<char> sta; scanf("%d%*c", &n); while (n--) { // init while (!sta.empty()) { sta.pop(); } // enter char ch; while ((ch = getchar()) != '\n') { if (ch == '(' || ch == '[') { sta.push(ch); } else if (ch == ']' || ch == ')'){ if (sta.empty()) { sta.push(ch); } if (ch == ']') { if (sta.top() != '[') { } else { sta.pop(); } } else { if (sta.top() != '(') { } else { sta.pop(); } } } } if (sta.empty()) { printf("Yes\n"); } else { printf("No\n"); } } return 0; }
相关文章推荐
- UVA - 673 - Parentheses Balance
- UVa 673 Parentheses Balance
- Uva 673 Parentheses Balance
- UVa-673-Parentheses Balance
- UVA-673 Parentheses Balance
- UVa 673 Parentheses Balance
- UVa - 673 - Parentheses Balance(栈-stack)(Java和C++)
- UVA 673 Parentheses Balance(括号匹配)
- UVa 673 Parentheses Balance(栈)
- UVa 673 - Parentheses Balance
- UVA673- Parentheses Balance
- uva 673 Parentheses Balance
- uva 673 Parentheses Balance
- UVA - 673 Parentheses Balance
- UVa 673 - Parentheses Balance
- 【STL基础02】UVA-673-Parentheses Balance
- Parentheses Balance-UVA - 673
- Uva-673-Parentheses Balance
- UVa673 - Parentheses Balance
- UVa 673 Parentheses Balance