首页 > 其他分享 >23/1/30-LeetCode 20: valid parenthese

23/1/30-LeetCode 20: valid parenthese

时间:2023-01-31 00:44:43浏览次数:62  
标签:parenthese return 23 empty printf 20 false stack match

LeetCode 20: valid parenthese
在数据结构OJ上AC过原题
某人找不到那个OJ的网址了...

思路

运用栈stack来实现 stack简直为其而生
但是当时的stack是我自己实现的,STL的stack操作其实不是很熟练,这道题就顺便把STL库的stack过一下。

实现

class Solution {
public:
    bool isValid(string s) {
        stack<char> p_match;
        //printf("%d\n",s.size());
        for(int i = 0; i < s.size(); ++i)
        {//printf("for%c\n",s[i]);
            if(s[i] == '(' || s[i] == '[' || s[i] == '{')
            {
                p_match.push(s[i]);
                //printf("%c\n",s[i]);
            }
            else{
                if(p_match.empty()) return false;
                char temp = p_match.top();
                //printf("%c\n",temp);
                //printf("%c\n",s[i]);
                switch(temp){
                    case '(':
                        if(s[i] != ')') return false;
                        break;
                    case '[':
                        if(s[i] != ']') return false;
                        break;
                    case '{':
                        if(s[i] != '}') return false;
                        break;
                }
                p_match.pop();
            }
        }
        if(!p_match.empty()) return false;
        return true;
    }
};

改进

可以先判断size是否是偶数!!这样就少了最后的!empty()。
for里面的empty()不能少因为可能(]]左括号数量少于右括号数量啊,不可以想当然

bug

  1. 当时写的时候确实是太久没写了惭愧...把pop()和top()操作都傻傻分不清orz,不过没事,我估计我不会再搞错了哈哈哈
  2. 我还把switch给忘了捡起来了捡起来了

标签:parenthese,return,23,empty,printf,20,false,stack,match
From: https://www.cnblogs.com/sectumsempra/p/17077626.html

相关文章

  • 2023年寒假英语笔记
    Unit1:FoodforThoughtcuisine:\(n.\)astyleofcooking.bacon:\(n.\)meatfromthebackorsidesofapigthathasbeencured,usuallyservedinthinslic......
  • USACO2023 Bronze 题解
    Problem1.Leaders\(\mathcal{Farmer\John}\)共有\(n\)头奶牛,品种用字符\(\mathsf{G}\)或\(\mathsf{H}\)表示。每一头牛有一个管辖区间\([i,E_i]\)称一头......
  • P2014 选课 ( 树上背包 )
    先看树上背包的板子:假设我们的树长这样:那么其实我们就有个比较朴素的想法:对一个结点对它的儿子们进行背包dp比如对于1号点我们就可以对2号3号进行背包dp问题是4......
  • TypeDB Forces 2023 C. Remove the Bracket
    链接:https://codeforces.com/contest/1787/problem/C题意:给定数组a数n和s,再由\(x_i+y_i=a_i\)且\((x_i-s)\cdot(y_i-s)\geq0\)一个式子令其值最小$F=a_1\cdotx_......
  • TypeDB Forces 2023 E. The Harmonization of XOR
    链接:https://codeforces.com/contest/1787/problem/E题意:给定n,有一个数组a,满足其所有元素均为1~n,给定k,问能否将数组拆为k个,其每一组的xor为x。我们发现任意三个xor为k的......
  • Outlook 2016邮箱设置
    文档课题:Outlook2016邮箱设置.启动outlook.选择“是”.选择“手动设置或其他服务器类型(M)”.选择“POP或IMAP(P)”.按如下填写相关信息.信息填写完毕后,点击“其他设置(M)......
  • 前缀后缀01背包(牛客2023多校D清楚姐姐学01背包)
    0x1f题目:https://ac.nowcoder.com/acm/contest/46812/D0x2f题意:定义初始背包的最优解\(V_{max}\)定义n个物品去掉任意一个后,最优解为\(V_{max}'\)每一个物品\(w......
  • [CTSC2015]日程管理
    linkSolution鉴于其于我的教育性意义,所以决定还是不放在寒假橄榄计划......
  • TypeDB Forces 2023 (Div. 1 + Div. 2, Rated, Prizes!)(持续更新)
    Preface猜结论场,很久没打比赛了然后赛前和ztc吹牛说每次隔一段时间来打CF就会有强运加持结果好家伙BCE全部秒出结论(而且我比赛时都证不来),而且写的A~E都是一发入魂凭借这......
  • 2023.1.28~2023.1.30 日寄
    2023.1.28~2023.1.30猜猜看为什么会积压三天?看看前两天在干什么吧。一言(1.28)我会被音乐打动、被诗歌打动,如果有一天我不再被打动了,我就会死。你知道我的意思吗?被打动......