首页 > 其他 > 详细

Leetcode20.有效的括号

时间:2020-08-11 21:37:51      阅读:58      评论:0      收藏:0      [点我收藏+]

题意

就是判断字符串内的括号是否匹配的问题

思路

  • 在学习栈的数据结构的时候,括号匹配一直都是很经典的应用,所以一看到题目就很自然想到用栈去做来。
  • 稍微注意一下下面的几种情况:1??}{这样右侧的符号先开始的。2??{{[]]}{这种末尾多了左侧括号的所以最后return的时候要判断是否栈空。3??{}]这样右侧括号比较多的(出栈的时候这里要判断一下??

代码

class Solution {
public:
    bool isValid(string s) {
        if(s.size() == 0)   return true;
        stack<char> sk;
        sk.push(s[0]);
        for(int i=1;i<s.size();i++)
        {
            if(s[i] == ‘(‘ || s[i] == ‘{‘ || s[i] == ‘[‘)   sk.push(s[i]);
            else{
                if(sk.size() == 0)  return false;
                char last = sk.top();
                if(last == ‘{‘ && s[i] == ‘}‘ || 
                   last == ‘[‘ && s[i] == ‘]‘ || 
                   last == ‘(‘ && s[i] == ‘)‘)
                    sk.pop();
                else return false;
            }
        }
        if(sk.size() == 0)  return true;
        else return false;
    }
};

Leetcode20.有效的括号

原文:https://www.cnblogs.com/MartinLwx/p/13479813.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!