首页 > 其他分享 >对于字符串,例如d(d)jjhd{f},判断括号是否符合规范

对于字符串,例如d(d)jjhd{f},判断括号是否符合规范

时间:2023-10-29 20:11:29浏览次数:31  
标签:map false chars 括号 put 符合规范 jjhd stack

public boolean isValid(String s) {
        Stack<Character> stack = new Stack<>();
        Map<Character,Character> map = new HashMap<>();
        char[] chars = s.toCharArray();
        map.put(')','(');
        map.put('}','{');
        map.put(']','[');
        for(int i=0;i < s.length();i++){
            if(!map.containsKey(chars[i])) {
            	//为左括号时直接入栈
                stack.push(chars[i]);
            }else{
            	//为右括号时,如果栈为空或者栈顶与该括号类型不匹配返回false
                if(stack.empty() || map.get(chars[i]) != stack.pop()){
                    return false;
                }
            }
        }
        //字符串遍历完毕后,如果栈为空返回true,反之返回false
        return stack.empty();
    }

  

标签:map,false,chars,括号,put,符合规范,jjhd,stack
From: https://www.cnblogs.com/yingpu/p/17796331.html

相关文章

  • js给一段话,遇到的第一个括号处加上换行符
    list.forEach((item,index0)=>{constproductName=item.name;constindex=productName.indexOf('(');if(index==-1){returnproductName;}constbefore=productName.......
  • 20. 有效的括号
    1.题目介绍给定一个只包括'(',')','{','}','[',']'的字符串s,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。示例1:输入:s="()"输出:true示例2:输入:s="()[]{}"......
  • 代码训练营第十一天(Python)| 20. 有效的括号、1047. 删除字符串中的所有相邻重复项、150
    20.有效的括号思路:分析出三种情况,画图模拟。写代码容易写错。classSolution:defisValid(self,s:str)->bool:a_stack=list()foriins:ifi=='(':a_stack.append(')')elifi=='{':......
  • 算法笔试题:有效的括号字符串,常规栈思路
    题:给定一个只包含三种字符的字符串:(,)和*,写一个函数来检验这个字符串是否为有效字符串。有效字符串具有如下规则:任何左括号(必须有相应的右括号)。任何右括号)必须有相应的左括号(。左括号(必须在对应的右括号之前)。*可以被视为单个右括号),或单个左括号(,或一......
  • 算法笔记-有效括号序列题解
    描述给出一个仅包含字符'(',')','{','}','['和']',的字符串,判断给出的字符串是否是合法的括号序列。括号必须以正确的顺序关闭,"()"和"()[]{}"都是合法的括号序列,但"(]"和"([)]"不合法。数据范围:字符串长度0≤n≤10000要求:空间复杂度O(n),时间复杂......
  • 32. 最长有效括号
    给你一个只包含'('和')'的字符串,找出最长有效(格式正确且连续)括号子串的长度。示例1:输入:s="(()"输出:2解释:最长有效括号子串是"()"思路classSolution{public:intlongestValidParentheses(strings){intsize=s.length();vector<......
  • LeetCode题库22.括号生成
     classSolution:defgenerateParenthesis(self,n:int)->List[str]:ifn==1:return['()']ifnotn:returnNonestack,res,l,r=[],[],[],[]for_inrange(n):l.append(......
  • [刷题笔记] Luogu P5658 [CSP-S 2019] 括号树
    Description给定一棵树,树的每个节点都有一个左括号或者右括号,求从根节点到每个点简单路径上的括号序列上合法的子括号序列数。Analysis显然树形dp。考虑如何设计状态,定义\(f_i\)表示从root到\(i\)节点的字串合法数量。考虑转移,如果当前的括号为左括号,我们无法和前面的......
  • 【LeetCode递归】括号生成,使用dfs
    括号匹配数字n代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合。示例1:输入:n=3输出:["((()))","(()())","(())()","()(())","()()()"]示例2:输入:n=1输出:["()"]提示:1<=n<=8代码与思路有效的括号组合要满足两个条件:①左右......
  • 08_ 有效的括号
    有效的括号【题目】给定一个只包括'(',')','{','}','[',']'的字符串s,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。【思路分析】第一种情况:已经遍历完了字符串,但是栈......