Java中如何检测包含嵌套括号的回文表达式

发布时间:2024-11-11 18:21:41 作者:小樊
来源:亿速云 阅读:82

要检测一个包含嵌套括号的字符串是否是回文表达式,可以使用栈数据结构来解决这个问题

import java.util.Stack;

public class PalindromeParentheses {
    public static void main(String[] args) {
        String input = "(A(B(E)C)D)";
        System.out.println("Is the input a palindrome parentheses expression? " + isPalindrome(input));
    }

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

        // 移除栈中剩余的空括号
        while (!stack.isEmpty()) {
            stack.pop();
        }

        // 将栈中的字符反转并与原始字符串比较
        Stack<Character> reversedStack = new Stack<>();
        for (char c : s.toCharArray()) {
            if (c != '(' && c != ')') {
                reversedStack.push(c);
            }
        }

        StringBuilder sb = new StringBuilder();
        while (!reversedStack.isEmpty()) {
            sb.append(reversedStack.pop());
        }

        return s.equals(sb.reverse().toString());
    }
}

这个程序首先使用一个栈来处理输入字符串中的括号。当遇到左括号时,将其压入栈中;当遇到右括号时,检查栈是否为空,如果为空则返回false,否则弹出栈顶元素。最后,将栈中的字符反转并与原始字符串比较,如果相等则说明输入字符串是一个回文表达式。

推荐阅读:
  1. java报错找不到或无法加载主类如何解决
  2. Java数据结构常见排序算法有哪些

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

java

上一篇:Java回文串检测与字符串去重排序的结合

下一篇:Java回文串检测在数据验证中的角色

相关阅读

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

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