这是一个Leetcode问题 -
如果一个字符串只包含字符
'('__、')'__、'{'__、'}'__、'['和']'__,则确定输入字符串是否有效。输入字符串在以下情况下有效-
注意,空字符串也被认为是有效的。例1-输入:"()“输出:真实示例2-输入:"()[]{}”输出:真示例3-输入:"(]“输出:假示例4-输入:"()”输出: False示例5-输入:“{[]}}”输出: True )
这是我对这个挑战的解决方案-
def is_valid(s):
if len(s) == 0:
return True
parentheses = ['()', '[]', '{}']
flag = False
while len(s) > 0:
i = 0
while i < 3:
if parentheses[i] in s:
s = s.replace(parentheses[i], '')
i = 0
flag = True
else:
i += 1
if len(s) == 0:
return True
else:
flag = False
break
return False因此,我想知道我是否能够提高性能并缩短代码。
发布于 2019-06-14 16:57:30
这不是一个性能建议,但您可以利用这样一个事实,即一个空集合是Falsey。
if len(s) == 0:在功能上与公正相同:
if not s:同样的,
while len(s) > 0:可以是:
while s:相关PEP条目 (在链接标题下搜索“序列”)。
https://codereview.stackexchange.com/questions/222295
复制相似问题