可以使用栈来实现括号匹配的问题。具体步骤如下:

  1. 创建一个栈,用于存储左括号;
  2. 遍历输入的字符串,对于每个字符:
    • 如果是左括号(包括'{'、'['、'('),则将其压入栈中;
    • 如果是右括号(包括'}'、']'、')'),则判断栈是否为空,如果为空或栈顶元素与当前右括号不匹配,则括号匹配失败,输出错误匹配;
    • 如果是其他字符,则继续遍历下一个字符;
  3. 遍历完所有字符后,判断栈是否为空,如果为空,则括号匹配成功,输出正确匹配;否则,输出错误匹配。

以下是使用Java实现的代码示例:

import java.util.Scanner;
import java.util.Stack;

public class BracketMatching {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入包含括号的字符串:");
        String input = scanner.nextLine();
        
        boolean isMatched = checkBracketMatching(input);
        if (isMatched) {
            System.out.println("括号匹配成功,正确匹配。");
        } else {
            System.out.println("括号匹配失败,错误匹配。");
        }
    }
    
    public static boolean checkBracketMatching(String input) {
        Stack<Character> stack = new Stack<>();
        
        for (char c : input.toCharArray()) {
            if (c == '{' || c == '[' || c == '(') {
                stack.push(c);
            } else if (c == '}' || c == ']' || c == ')') {
                if (stack.isEmpty() || !isMatchingPair(stack.peek(), c)) {
                    return false;
                }
                stack.pop();
            }
        }
        
        return stack.isEmpty();
    }
    
    public static boolean isMatchingPair(char left, char right) {
        return (left == '{' && right == '}') || (left == '[' && right == ']') || (left == '(' && right == ')');
    }
}

运行程序,输入包含括号的字符串,即可判断括号是否正确匹配

用java实现、括号匹配问题从键盘输入一个包含有花括号、中括号、小括号的字符串判断括号是否正确匹配输出判断结果。例如:输入d3ac则正确匹配。输入qw67g则错误匹配。

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

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