20.Valid Parentheses
20.Valid Parentheses
难度:Easy
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。
1
示例 1:
2
3
输入: "()"
4
输出: true
5
示例 2:
6
7
输入: "()[]{}"
8
输出: true
9
示例 3:
10
11
输入: "(]"
12
输出: false
13
示例 4:
14
15
输入: "([)]"
16
输出: false
17
示例 5:
18
19
输入: "{[]}"
20
输出: true
Copied!
方法:使用堆栈判断所有括号即可。代码如下:
1
class Solution {
2
public:
3
bool isValid(string s) {
4
stack<char> ss;
5
for(int i=0;i<s.length();i++)
6
{
7
if(s[i] == '(' || s[i] == '{' || s[i]=='[')
8
ss.push(s[i]);
9
else if(ss.empty())
10
return false;
11
else if(s[i]==')')
12
{
13
if(ss.top()=='(')
14
ss.pop();
15
else
16
return false;
17
}
18
else if(s[i]==']')
19
{
20
if(ss.top()=='[')
21
ss.pop();
22
else
23
return false;
24
}
25
else if(s[i]=='}')
26
{
27
if(ss.top()=='{')
28
ss.pop();
29
else
30
return false;
31
}
32
33
}
34
if(ss.empty()) return true;
35
return false;
36
}
37
};
Copied!
Copy link