您的位置:首页 > 其它

[leetcode刷题系列]Valid Parentheses

2013-08-02 22:00 246 查看
简单题,利用stack模拟就好了,如果最近的两个是一对,我们就把它们消掉,否则就把最新的放到stack去。最后看stack是否为空。

class Solution {
public:
bool valid(char left, char right){
if(left == '(' && right == ')')
return true;
if(left == '[' && right == ']')
return true;
if(left == '{' && right == '}')
return true;
return false;
}
bool isValid(string s) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
stack<char> stk;
for(int i = 0; i < s.size(); ++ i){
char c = s[i];
if((!stk.empty()) && valid(stk.top(), c)){
stk.pop();
}else
stk.push(c);
}
return stk.empty();
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: