使用 Java 做括號匹配演算法

2021-08-25 02:42:01 字數 911 閱讀 8674

給定乙個只包括 『(』,』)』,』』,』[』,』]』 的字串,判斷字串是否有效。

有效字串需滿足:

左括號必須用相同型別的右括號閉合。

左括號必須以正確的順序閉合。

注意空字串可被認為是有效字串。

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 當計算機接受了第乙個括號後,它期待著與其匹配的第八個括號的出現,然而等來的卻是第二個括號,此時第乙個括號 只能暫時靠邊,而迫切等待與第二個括號相匹配的 第七個括號 的出現,類似地,因...

括號匹配演算法

題目 有一段字串,包含 和 和 中的一種或者多種,這三種括號出現次序不定,可隨意巢狀。編寫 判斷三種括號是否正確匹配。思路一 棧的思想 括號匹配是運用棧的經典思想。在 演算法中設定乙個空棧,每次讀入乙個括號,若是左括號,則壓入棧中,等到對應的右括號壓棧,若是右括號,能使置於棧頂的最急迫的期待得以消解...