简单题。使用stack就行了。不过一开始忘了判断'['和']'的情况。要判断stack是否为空。
#include#include using namespace std;class Solution {public: bool isValid(string s) { // Start typing your C/C++ solution below // DO NOT write int main() function stack st; for (int i = 0; i < s.size(); i++) { if (s[i] == '(' || s[i] == '[' || s[i] == '{') { st.push(s[i]); } else if (s[i] == ')' || s[i] == ']' || s[i] == '}') { if (st.empty()) return false; char c = st.top(); st.pop(); if (c == '(' && s[i] != ')') return false; if (c == '[' && s[i] != ']') return false; if (c == '{' && s[i] != '}') return false; } } if (!st.empty()) return false; return true; }};