每日一题 LeetCode 有效的数字

2020-01-10 17:22:17 浏览数 (1)

有效的数字(简单题)

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

代码语言:javascript复制
    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来实现

0 人点赞