题解 | #有效括号序列#

有效括号序列

https://www.nowcoder.com/practice/37548e94a270412c8b9fb85643c8ccc2

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @return bool布尔型
     */
    public boolean isValid (String s) {
        // write code here
        Stack s1 = new Stack();
	  //遍历字符串
        for(int i = 0;i<s.length();i++){
		  //所有类型左括号入栈
            if(s.charAt(i) == '(' || s.charAt(i) == '[' || s.charAt(i) == '{')
            {
                s1.push(s.charAt(i));
        }
		  //遍历到右括号出栈
        else{
		  //栈为空,匹配不上
            if(s1.isEmpty()){
                return false;
            }
		  //栈不为空,出栈,判断当前遍历到的右括号和出栈的左括号是否配对(类型一样)
            char ch = (char)s1.pop();
            if(ch == '(' && s.charAt(i) == ')' || ch == '[' && s.charAt(i) == ']' || ch == '{' && s.charAt(i) == '}'){
                continue;
               
        }else{
            return false;
        }
        } 
        }
	  //遍历完字符串,栈不为空,括号不匹配
        if(!s1.isEmpty()){
            return false;
        }
        return true;
    }
}

全部评论

相关推荐

头像
09-16 12:33
拐儿中学 Java
希希睿:我都忘了我是来找工作的了😂就看你们皮
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务