您的位置:首页 > 其它

[leetcode] 20.Valid Parentheses

2015-08-29 20:15 447 查看
题目:

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.

题意:

给定一个字符串,里面包含了’(‘, ‘)’, ‘{‘, ‘}’, ‘[’ , ‘]’。查看这个字符串是否是合法的。像这就是合法的,[(])就是不合法的。

思路:

使用栈存放符号,遇到左括号就入栈,遇到右括号就查看是否与栈顶的左括号相匹配。

代码如下:

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