leetcode with python:20. Valid Parentheses

题目:

Given a string s containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.

An input string is valid if:
Open brackets must be closed by the same type of brackets.
Open brackets must be closed in the correct order.

给定一个有大中小括号的字串,检查它们是否两两相对

这题是明显的stack题型,而我所实作的程式码如下

class Solution:    def isValid(self, s: str) -> bool:        d={"(":0,")":"(","[":0,"]":"[","{":0,"}":"{"} #dictionary纪录对应值        l=[]        for i in range(len(s)):            if len(l)==0:                l.append(s[i])            else:                if d[s[i]]==l[-1]:                    l.pop()                else:                    l.append(s[i])        return l==[]

让字串堆叠入一个list,堆叠过程中一面确认字串尾端是否为欲堆入值的对应值,如果是就一同取出
以"{ { ( { } ) } }"为例,执行过程 list 变动如下:
{ --> {{ -->{{( --> {{({ --> {{({} --> {{( --> {{() --> {{ --> {{} --> { --> {} --> None
由此可知,如果最后 list 空无一物的话就表示括号们两两相对,反之则否
注意:如 list 无物, l[-1] 不存在,因此需多加个条件判断式在无值时 append

最后执行时间30ms(faster than 94.29%)

那我们下题见


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章