括号校验-Java

java

//目标:括号匹配的校验

//思路:使用栈来解决、遇到`([`就`入栈`,遇到`)]`就出栈,遇到其他元素不做处理。处理完后,检查栈的长度,为空表明括号匹配。

private static boolean checkBra(String str) {

String[] arr = str.split("");

if (")".equals(arr[0]) || "]".equals(arr[0])) {

return false;//字符串长度较长时可加此判断,提高效率

}

Stack stack = new Stack();

for (int i = 0; i < arr.length; i++) {

switch (arr[i]) {

case "(":

stack.push(arr[i]);

break;

case "[":

stack.push(arr[i]);

break;

case ")":

if(stack.isEmpty()) stack.push(arr[i]);//多余的括号

Object a = "(".equals(stack.peek()) == true ? stack.pop() : stack.push(arr[i]);//不匹配的括号

break;

case "]":

if(stack.isEmpty()) stack.push(arr[i]);//多余的括号

Object b = "[".equals(stack.peek()) == true ? stack.pop() : stack.push(arr[i]);//不匹配的括号

break;

default:

break;

}

}

return stack.isEmpty() == true ? true : false;//栈为空则校验成功,不为空则括号不匹配

}

以上是 括号校验-Java 的全部内容, 来源链接: utcz.com/z/394787.html

回到顶部