温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java实现基于模拟栈的回文括号检测

发布时间:2024-11-11 19:15:40 来源:亿速云 阅读:78 作者:小樊 栏目:编程语言

在Java中,我们可以使用模拟栈(Stack)的方法来实现回文括号检测

import java.util.Stack;

public class PalindromeBrackets {
    public static void main(String[] args) {
        String input = "({})";
        System.out.println("输入字符串: " + input);
        System.out.println("是否为回文括号: " + isPalindrome(input));
    }

    public static boolean isPalindrome(String s) {
        Stack<Character> stack = new Stack<>();
        for (char c : s.toCharArray()) {
            if (c == '(' || c == '{' || c == '[') {
                stack.push(c);
            } else {
                if (stack.isEmpty()) {
                    return false;
                }
                char top = stack.pop();
                if ((c == ')' && top != '(') || (c == '}' && top != '{') || (c == ']' && top != '[')) {
                    return false;
                }
            }
        }
        return stack.isEmpty();
    }
}

在这个实现中,我们遍历输入字符串的每个字符。如果遇到左括号(‘(’、‘{’ 或 ‘[’),我们将其压入栈中。如果遇到右括号(‘)’、‘}’ 或 ‘]’),我们检查栈是否为空。如果栈为空,说明没有匹配的左括号,因此返回false。否则,我们从栈中弹出一个左括号,并检查它是否与当前的右括号匹配。如果不匹配,返回false。最后,如果遍历完字符串后栈为空,说明所有的括号都匹配,返回true。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI