括號匹配演算法Java實現

2021-09-19 11:19:11 字數 646 閱讀 3468

描述:

給定乙個字串,其中的字元只包含三種括號:花括號、中括號[ ]、圓括號( ),即它僅由 「( ) [ ] 」 這六個字元組成。設計演算法,判斷該字串是否有效,即字串中括號是否匹配。括號匹配要求括號必須以正確的順序配對,如 「」 或 「[ ( [ ] ) ]」 等為正確的格式,而 「[ ( ] )」 或 「」 或 「( ] )」 均為不正確的格式。

思路:

資料結構選用棧,讀到左括號時入棧,讀到右括號時判斷是否匹配,匹配則左括號出棧,最後判斷棧為空說明匹配,不為空不匹配。

**:

public class ismatch ))";

boolean res = match(string);

system.out.println(res);

} public static boolean match(string str) ', '

else if(map.containskey(c))

if(stack.peek()==map.get(c)) else

}} return stack.empty()?true:false;

}}

實現括號匹配演算法

括號匹配問題 假設乙個算術表示式中包含圓括號 方括號和花括號三種型別的括號,編寫乙個函式,用來判別表示式中的括號是否正確配對,並設計乙個測試主函式。演算法思想 在算術表示式中,右括號和左括號匹配的次序正好符合後到的括號要最先被匹配的 後進先出 堆疊操作特點,因此可以借助乙個堆疊來進行判斷。括號匹配共...

使用 Java 做括號匹配演算法

給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。public boolean isvalid string s stack stack newstack for int i 0 i s.length...

括號匹配演算法

檢驗括號是否匹配的方法可以用 期待的急迫程度 這個概念來描述。例如,考慮下列括號序列 1 2 3 4 5 6 7 8 當計算機接受了第乙個括號後,它期待著與其匹配的第八個括號的出現,然而等來的卻是第二個括號,此時第乙個括號 只能暫時靠邊,而迫切等待與第二個括號相匹配的 第七個括號 的出現,類似地,因...