首页 > 其他分享 >LeetCode刷题记录.Day24

LeetCode刷题记录.Day24

时间:2022-11-24 23:11:06浏览次数:78  
标签:return Day24 st 括号 匹配 false else LeetCode 刷题

有效的括号

20. 有效的括号 - 力扣(LeetCode)

class Solution {
public:
    bool isValid(string s) {
        if (s.size() % 2 != 0) return false; //奇数必不符合
        stack<char> st;
        for(int i = 0; i < s.size(); i++){
            if( s[i] == '('){
                st.push(')');//入栈反括号,好匹配反括号
            }
            else if( s[i] == '{'){
                st.push('}');//入栈反括号,好匹配反括号
            }
            else if( s[i] == '['){
                st.push(']');//入栈反括号,好匹配反括号
            }
                        // 第三种情况:遍历字符串匹配的过程中,栈已经为空了,没有匹配的字符了,说明右括号没有找到对应的左括号 return false
            // 第二种情况:遍历字符串匹配的过程中,发现栈里没有我们要匹配的字符。所以return false
            else if(st.empty() || st.top() != s[i]){
                return false;
            }
            else{
                st.pop(); // st.top() 与 s[i]相等,匹配成功,栈弹出元素
            }
        }
         // 第一种情况:此时我们已经遍历完了字符串,但是栈不为空,说明有相应的左括号没有右括号来匹配,所以return false,否则就return true
        return st.empty();
    }
};

栈的特性的应用题。这道题属于是一个经验问题,题解其实是要求一段对称的字符串,如何利用栈的特性来遍历判断一个对称字符串,只能说熟悉了就会了。

标签:return,Day24,st,括号,匹配,false,else,LeetCode,刷题
From: https://www.cnblogs.com/tianmaster/p/16923798.html

相关文章

  • 刷题01
    正确的publicclassDemo{publicstaticvoidmain(String[]args){for(inti=2;i<1000;i++){intsum=0;for(inta=1;a<......
  • 力扣 leetcode 795. 区间子数组个数
    问题描述给你一个整数数组nums和两个整数:left及right。找出nums中连续、非空且其中最大元素在范围[left,right]内的子数组,并返回满足条件的子数组的个数。生成......
  • leetcode1552
    两球之间的磁力Category Difficulty Likes Dislikesalgorithms Medium(51.48%) 122 -TagsUnknownCompaniesUnknown在代号为C-137的地球上,Rick发现如果他将两个......
  • #yyds干货盘点# LeetCode 腾讯精选练习 50 题:Nim 游戏
    题目:你和你的朋友,两个人一起玩 Nim游戏:桌子上有一堆石头。你们轮流进行自己的回合, 你作为先手 。每一回合,轮到的人拿掉 1-3块石头。拿掉最后一块石头的人就是获胜者......
  • [leetcode每日一题]11.24
    ​​795.区间子数组个数​​给你一个整数数组 ​​nums​​ 和两个整数:​​left​​ 及 ​​right​​ 。找出 ​​nums​​ 中连续、非空且其中最大元素在范围 ​......
  • [LeetCode] 795. Number of Subarrays with Bounded Maximum
    Givenanintegerarray nums andtwointegers left and right,return thenumberofcontiguousnon-empty subarrays suchthatthevalueofthemaximumarr......
  • 力扣 leetcode 3. 无重复字符的最长子串
    题目描述给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。提示:0<=s.length<=5*104s由英文字母、数字、符号和空格组成示例示例1:输入:s=......
  • LeetCode刷题笔记—13.罗马数字转整数
    在此不再做题目描述。(该题链接:13.罗马数字转整数-力扣(LeetCode))在观察罗马数字时,我们可以发现计算罗马数字的技巧:可以设定一个初始值ans=0,然后对罗马数字从左到......
  • 算法4: LeetCode_K个节点的组内逆序调整
    最近一直都是链表的算法练习,今天刷的是LeetCode原题,还是关于链表的节点逆转,难度等级:Hard.首先看题目:给定一个单聊表的头节点head和一个正整数k,要求实现k个节点的小组内......
  • Leetcode 1360. 日期之间隔几天
    题目:请你编写一个程序来计算两个日期之间隔了多少天。日期以字符串形式给出,格式为YYYY-MM-DD,如示例所示。难度:简单题示例1:输入:date1="2019-06-29",date2="2019-......