Java 括号匹配算法:使用栈判断括号是否匹配
可以使用栈来判断括号是否正确匹配。遍历字符串,遇到左括号则将其入栈,遇到右括号则判断栈顶的左括号是否与之匹配,若匹配则将栈顶元素出栈,继续遍历;若不匹配则说明括号不正确匹配,返回false。最后判断栈是否为空,若为空则说明括号正确匹配,返回true;否则返回false。
以下是示例代码:
import java.util.*;
public class BracketMatching {
public static boolean isBracketMatching(String str) {
Stack<Character> stack = new Stack<>();
for (char c : str.toCharArray()) {
if (c == '(' || c == '[' || c == '{') {
stack.push(c);
} else if (c == ')' || c == ']' || c == '}') {
if (stack.isEmpty()) {
return false;
}
char top = stack.pop();
if ((c == ')' && top != '(') || (c == ']' && top != '[') || (c == '}' && top != '{')) {
return false;
}
}
}
return stack.isEmpty();
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入包含有花括号{}、中括号[]、小括号()的字符串:");
String str = scanner.nextLine();
boolean result = isBracketMatching(str);
if (result) {
System.out.println("括号匹配正确");
} else {
System.out.println("括号匹配不正确");
}
}
}
你可以通过键盘输入一个包含有花括号{}、中括号[]、小括号()的字符串进行测试。
原文地址: https://www.cveoy.top/t/topic/pumq 著作权归作者所有。请勿转载和采集!