您的位置:首页 > 其它

[leetcode] 20 Valid Parentheses

2015-02-11 18:23 381 查看
Given a string containing just the characters 
'('
')'
'{'
'}'
'['
 and 
']'
,
determine if the input string is valid.

The brackets must close in the correct order, 
"()"
 and 
"()[]{}"
 are
all valid but 
"(]"
 and 
"([)]"
 are
not.

easy的题目,相对来说比较简答,主要思想是利用栈来解决:

1. 左括号入栈,右括号与栈顶左括号比较,不相符即报错,相符将栈顶弹出;

2. 同时注意栈空否的状态

class Solution {
public:
bool isValid(string s) {
int len= s.length();
if(len% 2== 1) return false;
stack <char> vp;
for(int i= 0; i< len; i++){
if(s[i]=='(' || s[i]=='{' || s[i]=='['){
vp.push(s[i]);
}
else if(s[i]== ')'){
if(vp.empty()) return false;
if(vp.top()== '('){
vp.pop();
}
else{
return false;
}
}
else if(s[i]== '}'){
if(vp.empty()) return false;
if(vp.top()== '{'){
vp.pop();
}
else{
return false;
}
}
else if(s[i]== ']'){
if(vp.empty()) return false;
if(vp.top()== '['){
vp.pop();
}
else{
return false;
}
}
}
if(!vp.empty()) return false;
return true;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode