题解 | #有效括号序列#

有效括号序列

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

import java.util.*;


public class Solution {
    /**
     * 
     * @param s string字符串 
     * @return bool布尔型
     */
    public boolean isValid (String s) {
	  // 用于判断左右括号是否对应:20
        String left = "([{";
        String right = ")]})";
	  // 利用LinkedList来当栈
        LinkedList<Character> q = new LinkedList<>();
        for(int i=0;i<s.length();i++){
            if(right.indexOf(s.charAt(i))!=-1){
			  // 判断右括号是否单个出现
                if(q.size()==0) return false;
                char l = q.pollFirst();
			  // 左右对应则在left 和 right中下标相同
                if(left.indexOf(l)!=right.indexOf(s.charAt(i))){
                    return false;
                }
            } 
            if(left.indexOf(s.charAt(i))!=-1){
                q.addFirst(s.charAt(i));
            }
        }
	  // 完全配对则栈为空
        if(q.size() == 0) return true;
        else return false;
    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务