码迷,mamicode.com
首页 > 其他好文 > 详细

【字符串】20. 有效的括号

时间:2020-05-03 18:14:52      阅读:49      评论:0      收藏:0      [点我收藏+]

标签:++   字符   ali   inf   循环   empty   ret   strong   括号   

题目:

技术图片

 

 

 

解答:

如果是括号的左半边,直接入栈即可;

如果是括号的右半边,需要与栈最上面的括号匹配,匹配失败直接返回false;

for循环遍历结束后,判断栈是否为空,为空则表示所有的括号都已经匹配成功了。

 1 class Solution {
 2 public:
 3      bool isValid(string s) 
 4      {
 5         stack<char> st;
 6         for(int i = 0; i < s.size(); i++)
 7         {
 8             if(s[i] == ( || s[i] == [ || s[i] == {)
 9             {
10                 st.push(s[i]);
11             }
12             else if(s[i] == ))
13             {
14                 if(!st.empty() && st.top() == ()
15                 {
16                     st.pop();
17                 }
18                 else
19                 {
20                     return false;
21                 }
22             }
23             else if(s[i] == ])
24             {
25                 if(!st.empty() &&st.top() == [)
26                     st.pop();
27                 else
28                     return false;
29             }
30             else if(s[i] == })
31             {
32                 if(!st.empty() &&st.top() == {)
33                     st.pop();
34                 else 
35                     return false;
36             }
37         }
38         if(st.empty())
39             return true;
40         else
41             return false;
42     }
43 };

 

【字符串】20. 有效的括号

标签:++   字符   ali   inf   循环   empty   ret   strong   括号   

原文地址:https://www.cnblogs.com/ocpc/p/12822625.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!