可以使用栈来判断括号是否正确匹配。遍历字符串,遇到左括号则将其入栈,遇到右括号则判断栈顶的左括号是否与之匹配,若匹配则将栈顶元素出栈,继续遍历;若不匹配则说明括号不正确匹配,返回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("括号匹配不正确");
        }
    }
}

你可以通过键盘输入一个包含有花括号{}、中括号[]、小括号()的字符串进行测试。

Java 括号匹配算法:使用栈判断括号是否匹配

原文地址: https://www.cveoy.top/t/topic/pumq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录