|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 dukai 于 2023-1-20 14:18 编辑
a = input("typing ")
stack = []
c = 1
for b in a:
if b == '[' or b == '{' or b == '(':
stack.append(b)
else:
if b == ']' or b == '}' or b == ')':
if b == ']':
c = '['
elif b == '}':
c = '{'
elif b == ')':
c = '('
if c == stack[-1]: #我想先让c和stack的最后一个比较,如果比较成功了就剔除stack最后一个符号
stack.pop(stack[-1])
else:
print("error")
break
if len(stack) == 0:
print("ok")
#想了很久也没明白哪里错了,求大神解答,希望各位大神手下留情,尽量在我的代码上改一下,如果我整个思路是错的就当我没说
本帖最后由 jackz007 于 2023-1-20 17:27 编辑
- if b == '[' or b == '{' or b == '(': # '(' 是中文字(全角)符
复制代码
这是我改写的代码,楼主可以参考一下。
- stack , d = [] , {'}' : '{' , ']' : '[' , ')' : '('}
- f = False
- a = input("typing ")
- for b in a:
- if b in '{[(':
- stack . append(b)
- else:
- if stack . pop() != d[b]:
- break
- else :
- if not stack : f = True
- print('ok') if f else print('error')
复制代码
|
|