演算法 有效的括號

2021-09-04 02:19:01 字數 632 閱讀 4354

偽**

1.得到字串.

2.建立乙個linkedlist(用來模擬stack)

2.非空判斷,空返回true

3.遍歷字串

如果第一次碰到三個括號([{}({})//第乙個括號是右括號必定是錯誤的

如果碰到左括號,給linkedlist中新增對應的右括號,碰到右括號,判斷linkedlist末尾的右括號是否與其匹配,匹配則刪除linkedlist末尾的括號,不匹配直接返回false

相當於這種情況

假設字串是

遍歷完前三個應該是linklist中結果應該是else if (c == '[') else if (c == '"壓棧

l.add('}');

} else }}

// 遍歷完成,集合中應當也是空的.

return l.isempty();

}public static void main(string args) ";

boolean valid = isvalid(s);

system.out.println(valid);

}}輸出結果:true

演算法 有效的括號

給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。1 輸入 輸出 false 2 輸入 輸出 true 在最開始看到該題時是想將輸入的字串都先放入棧中,然後對棧進行操作 但是這種方法有點複雜。後邊實在...

演算法 有效的括號

給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出 true 示例 3 輸入 輸出 false 示例 4 輸入 輸出 false 示例 5 輸入 輸...

演算法 有效的括號

有效的括號 核心思路 最左邊的右括號的,必定與不超過右括號的最右邊的左括號匹配 棧頂元素 解法一 最左邊的右括號的前乙個括號必定是相匹配的右括號 思路 1.如果長度為奇數返回false,如果左棧為空的時,出現右括號直接返回false 2.從左到右遍歷每個括號,如果是左括號就入棧,直到遇到右括號 第乙...