1. 程式人生 > >每日一題 LeetCode 有效的數字 Python實現

每日一題 LeetCode 有效的數字 Python實現

字典 true false 如果 有效 solution code del append

有效的數字(簡單題)

class Solution:
def isValid(self, s):
"""
:type s: str
:rtype: bool
"""

    a=list(s)
    b=[]                            #存放左括號的棧  qc:list當做棧
    c={‘(‘:‘)‘,‘[‘:‘]‘,‘{‘:‘}‘}     #字典存儲     qc;key:value 鍵:值

    for i in a:
        if i==‘‘:
            return True
        elif i in c:
          #如果是字典中的鍵,即左括號,放進棧
            b.append(i)
        else:
            if len(b)==0: #先判斷是否有左括號存在
                return False
            else:
                 #字典得到該鍵的值==棧頂值對應的右括號       
                if c.get(b[-1])!=i: 
                    return False
                else:               
                    del b[-1]      #刪除棧頂元素
    if len(b)!=0:  #若還存在左括號,此時已沒有右括號,出錯
        return False

    return True
# 用到了數據結構中的棧 在Python中可以只通過list來實現

每日一題 LeetCode 有效的數字 Python實現