标签:图片 empty sem boolean 奇数 ati oid 准备 题目
不会题目的思路总结
01 对称匹配问题(总元素必为偶数个)
思想:
注意:以"[]"(对称图形),则左边部分内容(对称轴左边)为"[",右边部分内容(对称轴右边)为"]"
实例:b站基础面试题-----括号匹配问题(对称的)
public class Solution01 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入要判断的字符串");
System.out.println(isPairs(scanner.next()));
} //利用栈先进后出的原理,括号匹配也是后面进去的先匹配)
public static boolean isPairs(String string) {
if (string.length() % 2 != 0) {
//奇数必然不匹配
return false;
}
//利用栈先进后出的原理,每遇到左括号,就压进去(push)对应的右括号,然后遇到右括号就进行弹栈
// 若所有的弹栈都和对应的右括号的一致,就返回true,否则返回false
Stack<Character> stack = new Stack();//定义一个栈,利用泛型限定压栈的内容
char[] chars = string.toCharArray();//为压栈做准备
for (int i = 0; i < chars.length; i++) {
if (chars[i] == ‘{‘) {
stack.push(‘}‘);
} else if (chars[i] == ‘[‘) {
stack.push(‘]‘);
} else if (chars[i] == ‘(‘)
stack.push(‘)‘);
else if (stack.isEmpty() || chars[i] != stack.pop()) {
//栈空该次代表着遇到的就是结束符号
//如果弹出的栈与遇到的右括号不相等,也是返回false;
return false;
}
}
//如果遍历完所有的字符数字元素,都未返回false,那么栈必然为空
return stack.isEmpty();
}
标签:图片 empty sem boolean 奇数 ati oid 准备 题目
原文地址:https://www.cnblogs.com/SSSzhanglingzhi/p/14105010.html