給定乙個只包括 『(』,』)』,』』,』[』,』]』 的字串,判斷字串是否有效。
有效字串需滿足:
左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。
注意空字串可被認為是有效字串。
public
boolean
isvalid
(string s)
stack
stack =
newstack
();for
(int i =
0; i < s.
length()
; i++
)elseif(
")".
equals
(current)
&&!stack.
isempty()
&&"("
.equals
(stack.
peek()
))elseif(
"]".
equals
(current)
&&!stack.
isempty()
&&"["
.equals
(stack.
peek()
))elseif(
"}".
equals
(current)
&&!stack.
isempty()
&&"}// 如果遍歷結束後棧未清空,則匹配失敗if(
!stack.
isempty()
)return flag;
}
括號匹配演算法Java實現
描述 給定乙個字串,其中的字元只包含三種括號 花括號 中括號 圓括號 即它僅由 這六個字元組成。設計演算法,判斷該字串是否有效,即字串中括號是否匹配。括號匹配要求括號必須以正確的順序配對,如 或 等為正確的格式,而 或 或 均為不正確的格式。思路 資料結構選用棧,讀到左括號時入棧,讀到右括號時判斷是...
括號匹配演算法
檢驗括號是否匹配的方法可以用 期待的急迫程度 這個概念來描述。例如,考慮下列括號序列 1 2 3 4 5 6 7 8 當計算機接受了第乙個括號後,它期待著與其匹配的第八個括號的出現,然而等來的卻是第二個括號,此時第乙個括號 只能暫時靠邊,而迫切等待與第二個括號相匹配的 第七個括號 的出現,類似地,因...
括號匹配演算法
題目 有一段字串,包含 和 和 中的一種或者多種,這三種括號出現次序不定,可隨意巢狀。編寫 判斷三種括號是否正確匹配。思路一 棧的思想 括號匹配是運用棧的經典思想。在 演算法中設定乙個空棧,每次讀入乙個括號,若是左括號,則壓入棧中,等到對應的右括號壓棧,若是右括號,能使置於棧頂的最急迫的期待得以消解...