leetcode(python) 20. 有效的括號(hào)

  1. 有效的括號(hào)

給定一個(gè)只包括 '(',')','{','}','[',']' 的字符串,判斷字符串是否有效。
有效字符串需滿足:
左括號(hào)必須用相同類型的右括號(hào)閉合。
左括號(hào)必須以正確的順序閉合。
注意空字符串可被認(rèn)為是有效字符串。

示例 1:
輸入: "()"
輸出: true
示例 2:
輸入: "()[]{}"
輸出: true
示例 3:
輸入: "(]"
輸出: false
示例 4:
輸入: "([)]"
輸出: false
示例 5:
輸入: "{[]}"
輸出: true

題目鏈接:https://leetcode.com/problems/valid-parentheses/

數(shù)據(jù)結(jié)構(gòu)里面的題,就是利用棧對(duì)比求解,python結(jié)合list列表即可。

解題思路:若括號(hào)字符串長(zhǎng)度為奇數(shù)肯定無(wú)效。為偶數(shù)時(shí)分兩種情況,示例 2 "()[]{}"型的,相鄰的為一組有效括號(hào),示例 5"{[]}"型的,首尾的一組為有效括號(hào)。

class Solution:
    def isValid(self, s: str) -> bool:
        temp = []
        l = len(s)
        if l % 2 == 1:    # 長(zhǎng)度為奇數(shù)直接返回False
            return False
        i = 0
        while i < l:
            if len(temp)>0:    # 為示例5型的出棧對(duì)比
                s1 = temp.pop()
                if not self.valid(s1,s[i]):
                    temp.append(s1)
                    temp.append(s[i])
                i += 1
            else:    # 為示例2型的相鄰兩兩對(duì)比
                if not self.valid(s[i], s[i+1]):
                    temp.append(s[i])
                    temp.append(s[i+1])
                i += 2
        return len(temp) == 0

    def valid(self, s1, s2):
        if s1 == '(':
            return s2 == ')'
        elif s1 == '[':
            return s2 == ']'
        elif s1 == '{':
            return s2 == '}'
        else:
            return False
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 需求 給定一個(gè)只包括 '('、')'、'{'、'}'、'['、']' 的字符串,判斷字符串是否有效。 有效字符串...
    惑也閱讀 427評(píng)論 0 3
  • 一、快捷鍵 ctr+b 執(zhí)行ctr+/ 單行注釋ctr+c ...
    o_8319閱讀 6,031評(píng)論 2 16
  • 一、Python簡(jiǎn)介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡(jiǎn)介】: Python 是一個(gè)...
    _小老虎_閱讀 6,329評(píng)論 0 10
  • ??引用類型的值(對(duì)象)是引用類型的一個(gè)實(shí)例。 ??在 ECMAscript 中,引用類型是一種數(shù)據(jù)結(jié)構(gòu),用于將數(shù)...
    霜天曉閱讀 1,218評(píng)論 0 1
  • 1 只要水比較深的地方,就住著水鬼。 村頭老李一家三口,過(guò)著平常農(nóng)家人安寧祥和的日子,兩夫妻五十歲出頭,過(guò)了半輩子...
    毛阿花閱讀 734評(píng)論 5 2

友情鏈接更多精彩內(nèi)容