bool isValid(string s) {
stack<char> stck;
for (int i = 0; i < s.length(); i++) {
if ((s[i] == '(') || (s[i] == '{') || (s[i] == '['))
stck.push(s[i]);
else {
if (stck.empty()) return false;
if ((s[i] == ')') && ((stck.top()) != '(')) return false;
else if((s[i] == ')') && stck.top() == '('){
stck.pop();
continue;
}
if ((s[i] == '}') && (stck.top() != '{')) return false;
else if((s[i] == '}') && stck.top() == '{') {
stck.pop();
continue;
}
if ((s[i] == ']') && (stck.top() != '[')) return false;
else if((s[i] == ']') && stck.top() == '[') {
stck.pop();
continue;
}
}
}
return stck.empty();
}
用法:对于创建算术二叉树特别的有用。