其他分享
首页 > 其他分享> > 20.有效的括号

20.有效的括号

作者:互联网

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

有效字符串需满足:

左括号必须用相同类型的右括号闭合。

左括号必须以正确的顺序闭合。

解题思路(自):利用栈,但是重点在怎么辨别是同一对括号。

我利用括号的ASCII码(28 )29 {123}125 [91]93之间的差小于等于2,进行判断。

public boolean isValid(String s){
		Stack<Character> stack1 = new Stack<>();
		Stack<Character> stack2 = new Stack();
		//for循环将数值转入栈中
		for (int i = 0; i < s.length(); i++) {
			stack1.push(s.charAt(i));
		}
		
		while (!stack1.empty()) {
			if(stack2.empty()){
				stack2.push(stack1.peek());
				stack1.pop();
				continue;
			}
			char c = stack1.peek();
			int index = stack2.peek()-c;
			if (index>0 &&index<=2) {
				stack1.pop();
				stack2.pop();
				
			}else{
				stack1.pop();
				stack2.push(c);
			}
		}
		if (stack2.empty()) {
			return true;
		}
		
		return false;
	}

标签:peek,20,有效,index,括号,stack2,Stack,stack1
来源: https://blog.csdn.net/DreamLy1017/article/details/121945603