代码随想录算法训练营第十天| 20. 有效的括号 1047. 删除字符串中的所有相邻重复项 150. 逆波兰表达式求值

发布时间 2023-06-18 15:28:32作者: 博二爷

20. 有效的括号  

特点:

左括号之后,可能还会有左括号,但是只要有右括号,那么它必须立刻和最近的左括号

代码:

 1 char returnRightChar(char &c)
 2 {
 3     switch (c)
 4     {
 5     case '[': return ']';
 6     case '(': return ')';
 7     case '{': return '}';
 8     }
 9 
10     return NULL;
11 }
12 bool isValid(string s) 
13 {
14     stack<char> left;
15     
16     for (char c : s)
17     {
18         if (c == '[' || c == '(' || c == '{')
19         {
20             left.push(c);
21         }
22         else 
23         {
24             if (!left.empty()&&c == returnRightChar(left.top()))
25             {
26                 left.pop();
27             }
28             else {
29                 return false;
30             }
31             
32         }
33         
34     }
35 
36     return left.empty();
37 }