leetcode题解--括号匹配

括号匹配

可以考虑使用数组来模拟栈操作,另外让top=1,省去判断栈空,和数组越界的问题

在遇到)时,判断栈顶是否是(,以此类推

代码如下:

Public boolean isvalid(String s){
    char[] stack = new char[s.length()+1];
    int top=1;
    for(char c:s.toCharArray()){
        if(c=='('||c=='['||c=='{'){
            stack[top++]=c;
        }
        else if(c==')'&&stack[--top]!='('){
            return false;
        }
        else if(c==']'&&stack[--top]!='['){
            return false;
        }
        else if(c=='{'&&stack[--top]!='}'){
            return false;
        }
    }
    return top==1;
}

本博客所有文章除特别声明外,大部分为学习心得,欢迎与博主联系讨论