Leetcode刷題之括號

2021-09-26 13:50:16 字數 704 閱讀 9015

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

有效字串需滿足:

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

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

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

示例 1:

輸入: 「()」

輸出: true

示例 2:

輸入: 「(){}」

輸出: true

示例 3:

輸入: 「(]」

輸出: false

示例 4:

輸入: 「([)]」

輸出: false

示例 5:

輸入: 「」

輸出: true

經典的括號匹配問題,其實就是遍歷字串,把左括號存放在棧裡,若是右括號則從棧裡彈出乙個元素與它進行匹配,匹配時棧為空時,說明不是有效的。由於有3種括號,可以巧妙地設定hashmap,鍵:都為右括號,值:與鍵匹配的左括號。由於括號匹配應該是一一對應的,所以最後棧應該是空的,否則就不匹配。

class solution ','

public boolean isvalid(string s)

}else

}return stack.isempty();

//只要一一匹配,也就是對棧來說是進多少出多少。迴圈後棧肯定為空

}}

leetcode刷題(51) 22 括號生成

給出 n 代表生成括號的對數,請你寫出乙個函式,使其能夠生成所有可能的並且有效的括號組合。例如,給出 n 3,生成結果為 思路 只要有左括號就可以新增 class solution public void helper int left,int right,string str if left 0 ...

Leetcode刷題 有效的括號

思路 先把符號輸入字典,每對符號的左半邊設定為位置,右半邊設定為值,方便後續進行比對。利用出入棧的思想,設定棧stack,將字串中的值cpush入棧直至c不在字典裡。然後再將棧裡的值pop出來與c對比,注意此時pop出來的值是字典的位置索引dic stack.pop 所對應的值應該是符號的右半邊。如...

leetcode刷題(30) 20 有效的括號

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