leetcode 20. 有效的括号

一、题目

给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。

示例 1:
输入:s = "()"
输出:true

二、解法

go:

func isValid(s string) bool {
    stk:=make([]byte,0)
    n:=len(s)
    m:=map[byte]byte{
        ')':'(',
        ']':'[',
        '}':'{',
    }
    for i:=0;i<n;i++{
        if _,ok:=m[s[i]];ok{
            if len(stk)==0||stk[len(stk)-1]!=m[s[i]]{
                return false
            }
            stk=stk[:len(stk)-1]
        }else{
            stk=append(stk,s[i])
        }
    }
    return len(stk)==0
}

java:
不用map,在入栈的时候改变一下入栈符号即可

class Solution {
    public boolean isValid(String s) {
        Deque<Character> stack=new ArrayDeque<>();
        for(int i=0;i<s.length();i++){
            char ch=s.charAt(i);
            if(ch=='('){
                stack.push(')');
            }else if(ch=='['){
                stack.push(']');
            }else if(ch=='{'){
                stack.push('}');
            }else if(stack.isEmpty()||stack.peek()!=ch){
                return false;
            }else{
                stack.poll();
            }
        }
        return stack.isEmpty();
    }
}
posted @   livingsu  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示