給定乙個只包括 『(』,』)』,』』,』[』,』]』 的字串,判斷字串是否有效。
有效字串需滿足:
左括號必須用相同型別的右括號閉合。
左括號必須以正確的順序閉合。
注意空字串可被認為是有效字串。
示例 1:
輸入: 「()」
輸出: true
示例 2:
輸入: 「(){}」
輸出: true
示例 3:
輸入: 「(]」
輸出: false
示例 4:
輸入: 「([)]」
輸出: false
示例 5:
輸入: 「」
輸出: true
感覺python對字串的處理較快
官方解法class solution(object):
def isvalid(self, s):
stack =
for char in s:
top_element = stack.pop() if stack else '#'
return false
else:
return not stack
c++解法
class solution {
public:
bool isvalid(string s)
{stackparentheses;
for(int i=0;i不曉得題目為啥」(【】「判斷有錯,難道不是只要有一對相鄰的配對括號就行了嗎?
50道演算法題(1 50)
題目 給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 ...
50道演算法題(2 50)
給定兩個大小為 m 和 n 的有序陣列 nums1 和 nums2。請你找出這兩個有序陣列的中位數,並且要求演算法的時間複雜度為 o log m n 你可以假設 nums1 和 nums2 不會同時為空。示例 1 nums1 1,3 nums2 2 則中位數是 2.0示例 2 nums1 1,2 n...
50道演算法題(5 50)
請你來實現乙個 atoi 函式,使其能將字串轉換成整數。首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正負號 假如第乙個非空字元是數字,則直接將其與之後連續的數字字...