簡體   English   中英

如何檢查給定數組中的括號是否平衡?

[英]How to check if parentheses are balanced in given array?

有什么方法可以在不使用Stack情況下做到這一點:

()應該返回 TRUE(平衡)

(()應該返回 FALSE(不平衡)

public static boolean check(String s) {
int counter = 0;
for (int i = 0; i < s.length(); i++) {
    if (s.charAt(i) == '(') {
        counter++;
    } else if (s.charAt(i) == ')') {
        if (counter == 0) {
            return false;
        }
        counter--;
    }
}
return counter == 0;
}

首先從字符串中刪除除"("")"以外的任何內容

s = s.replaceAll("[^\\(\\)]", "");

然后在循環中逐漸刪除所有出現的"()"
如果這導致空字符串,則返回true

public static boolean check(String s) {
    s = s.replaceAll("[^\\(\\)]", "");
    while (s.contains("()")) {
        s = s.replace("()", "");
    }
    return s.isEmpty();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM