You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java不使用栈判断给定字符串是否为平衡字符串

需求确认

我完全明确你的实现目标,这个是栈结构的经典落地场景,和标准平衡括号校验属于同一类问题,核心判定规则和你参考的示例逻辑完全对齐:

  • 字符串中所有成对匹配的对称符号(常见如小括号、中括号、大括号,可按需扩展其他配对)必须正确嵌套、顺序匹配,不能出现交叉配对、单边缺漏、顺序颠倒的情况
  • 空串默认判定为平衡字符串
  • 不属于配对符号的普通字符不影响平衡性判定,遍历过程直接跳过即可
  • 判定逻辑全程遵循后进先出的匹配规则:遇到左配对符号压栈,遇到右配对符号时弹出栈顶元素校验是否为对应匹配的左符号,全程不匹配直接返回非平衡,遍历完成后栈为空才判定为平衡

可直接复用的实现代码(Java版)

import java.util.*;

public class BalancedStringChecker {
    // 维护配对映射:key为右闭合符号,value为对应的左开启符号
    private static final Map<Character, Character> MATCH_PAIRS = Map.of(
        ')', '(',
        ']', '[',
        '}', '{'
        // 有其他配对需求(比如尖括号、中文括号、引号等)直接在这里追加即可
    );

    public static boolean isBalanced(String source) {
        // 空串直接返回平衡
        if (source == null || source.isEmpty()) {
            return true;
        }
        Deque<Character> matchStack = new ArrayDeque<>();
        for (char cur : source.toCharArray()) {
            // 遇到左开启符号,压入栈顶
            if (MATCH_PAIRS.containsValue(cur)) {
                matchStack.push(cur);
                continue;
            }
            // 遇到右闭合符号,做匹配校验
            if (MATCH_PAIRS.containsKey(cur)) {
                // 栈空说明没有对应的左符号,栈顶不匹配说明顺序错误,直接返回false
                if (matchStack.isEmpty() || matchStack.pop() != MATCH_PAIRS.get(cur)) {
                    return false;
                }
            }
            // 其他普通字符直接跳过,不做处理
        }
        // 遍历结束栈为空,说明所有左符号都完成了匹配
        return matchStack.isEmpty();
    }

    // 测试用例
    public static void main(String[] args) {
        System.out.println(isBalanced("()[]{}"));          // true
        System.out.println(isBalanced("({[]})"));          // true
        System.out.println(isBalanced("(]"));              // false
        System.out.println(isBalanced("([)]"));            // false
        System.out.println(isBalanced("a(b)c[d]{e}f"));    // true
    }
}

扩展提示:如果你的业务场景需要处理转义字符(比如被反斜杠转义的引号不算有效配对边界),只需要在遍历字符时增加转义状态位,遇到转义符时跳过下一个字符的配对校验即可,核心栈逻辑不需要改动。
如果是其他技术栈实现,只需要把栈结构替换为对应语言的原生栈/数组模拟栈即可,逻辑完全通用。

内容的提问来源于stack exchange,提问作者Bart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 14:00:54