您好,登錄后才能下訂單哦!
在Java中,要檢測包含復雜嵌套括號結構的回文表達式,可以使用棧數據結構
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();
}
}
// 計算未匹配的左括號數量
int unmatchedLeftBrackets = 0;
for (char c : s.toCharArray()) {
if (c == '(') {
unmatchedLeftBrackets++;
} else if (c == ')') {
unmatchedLeftBrackets--;
if (unmatchedLeftBrackets < 0) {
return false;
}
}
}
// 如果未匹配的左括號數量為偶數,則為回文括號表達式
return unmatchedLeftBrackets == 0;
}
}
這個程序首先使用棧來檢查輸入字符串中的括號是否匹配。然后,它計算未匹配的左括號數量。如果未匹配的左括號數量為偶數,則輸入字符串是一個回文括號表達式。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。