我希望能够验证括号,以便它们包含并忽略任何类型的字符。只要有效地使用带括号的字符串包围,那么True
else `False。
我还是 python 新手,所以我不确定如何为这个特定条件正确创建 if 语句。我正在尝试创建一个 fi 语句,这样当我.pop()
为空时,deque()
我将能够return False
而不是收到错误消息:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: pop from an empty deque
也许还有另一种更好的方法可以解决这个问题。如果是这样,我很高兴看到其他人会如何解决它
例如:
a = 'sdf(sadf(sdf)sdf)sdfsd0sdf)sdf(sdf0)' # false
b = 'dsf))))(((((dsfsdf' # false
c = '()()()()' # true
d = '((((asd(asd)asd)()()asd))' # true
我的代码:
# any letter is ignored
# jsut make sure that the parenthesis are equal
from collections import *
def str_valid(stringy):
param_stack = deque()
for n in stringy:
if n ==')':
param_stack.pop()
if n == '(':
param_stack.append('(')
if param_stack == []:
return True
else:
return False
a = 'sdf(sadf(sdf)sdf)sdfsd0sdf)sdf(sdf0)' # false
b = 'dsf))))(((((dsfsdf' # false
c = '()()()()' # true
d = '((((asd(asd)asd)()()asd))' # true
print str_valid(a)
print str_valid(b)
print str_valid(c)
print str_valid(d)