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