给定一个只包括 '('
,')'
,'{'
,'}'
,'['
,']'
的字符串,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:
输入: "()"
输出: true
示例 2:
输入: "()[]{}"
输出: true
示例 3:
输入: "(]"
输出: false
示例 4:
输入: "([)]"
输出: false
示例 5:
输入: "{[]}"
输出: true
1 bool isValid(string s)
2 {
3 stack<char> Stack;
4 for(auto &c:s)
5 {
6 switch(c)
7 {
8 case '(':
9 case '[':
10 case '{':
11 Stack.push(c);
12 break;
13 case ')':
14 if(Stack.empty()||Stack.top()!='(')
15 return false;
16 else
17 Stack.pop();
18 break;
19 case ']':
20 if(Stack.empty()||Stack.top()!='[')
21 return false;
22 else
23 Stack.pop();
24 break;
25 case '}':
26 if(Stack.empty()||Stack.top()!='{')
27 return false;
28 else
29 Stack.pop();
30 break;
31 }
32 }
33 if(!Stack.empty())
34 return false;
35 else
36 return true;
37 }