热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ValidParenthesesLeetCode

目录题目链接注意点解法小结ValidParentheses-LeetCode注意点考虑输入为空的情况解法解法一:如果是(、{、[这三者就入栈,否则就判断栈是否为空和栈顶括号是否与之

目录
  • 题目链接
  • 注意点
  • 解法
  • 小结

Valid Parentheses - LeetCode

注意点
  • 考虑输入为空的情况

解法

解法一:如果是'('、'{'、'['这三者就入栈,否则就判断栈是否为空和栈顶括号是否与之匹配。注意两个判断顺序不可以颠倒,不然会runtime error。时间复杂度为O(n)

class Solution {
public:
    bool isValid(string s) {
        stack stk;
        for(auto &ch:s)
        {
            if(ch == '('||ch == '{'||ch == '[')
            {
                stk.push(ch);
            }
            else if(ch == ')')
            {
                if(stk.empty()||stk.top() != '(')
                {
                    return false;
                }
                else
                {
                    stk.pop();
                }
            }
            else if(ch == '}')
            {
                if(stk.empty()||stk.top() != '{')
                {
                    return false;
                }
                else
                {
                    stk.pop();
                }
            }
            else if(ch == ']')
            {
                if(stk.empty()||stk.top() != '[')
                {
                    return false;
                }
                else
                {
                    stk.pop();
                }
            }
        }
        if(!stk.empty())
        {
            return false;
        }
        return true;
    }
};

Valid Parentheses - LeetCode

小结

一些栈的基本操作:

  • push(): 向栈内压入一个成员;
  • pop(): 从栈顶弹出一个成员;(注意要判断栈是否为空)
  • empty(): 如果栈为空返回true,否则返回false;
  • top(): 返回栈顶,但不删除成员;(注意要判断栈是否为空)
  • size(): 返回栈内元素的大小

推荐阅读
author-avatar
yangwei的马甲
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有