题解 | #有效括号序列#

有效括号序列

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

import java.util.*;


public class Solution {
    /**
     *
     * @param s string字符串
     * @return bool布尔型
     */
  	//规律,要想压入右括号必先与在他之前最右侧的左括号配对
	//创建两个数组,分别存左括号和右括号,并且配对括号在数组的下标是相同的
	//将输入字符串拆分成字符数组,
	//创建一个的栈只入左括号
	//遍历数组判断左括号是入栈还是出栈操作,否则配对失败
    public boolean isValid (String s) {
        String [] a1 = {"(", "[", "{"};
        String [] a2 = {")", "]", "}"};
        String[] arr = s.split("");
        Stack<String> stack = new Stack<String>();
        for (int i = 0; i < arr.length; i++) {
            if (contain(a1, arr[i]) != -1) {//如果该字符是左括号则入栈
                stack.push(arr[i]);
            }/如果该字符是右括号且该栈不能没有左括号且左括号得和栈顶的左括号配对成功
		  else if ((contain(a2, arr[i]) != -1) && !stack.isEmpty() &&
                       contain(a2, arr[i]) == contain(a1, stack.peek())) {
                stack.pop();
            } else {
                return false;
            }
        }
        if (stack.isEmpty())
            return true;
        else
            return false;

    }
    static int contain(String [] arr, String s) {
        for (int i = 0; i < arr.length; i++) {
            if (arr[i].equals(s))
                return i;
        }
        return -1;

    }
}

#刷题记录#
全部评论

相关推荐

算法冲刺中:kpi面加一,面完完全没动静,感谢信都没有
点赞 评论 收藏
分享
程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务