猿辅导第一题,菜鸡代码,欢迎指正

# 带括号的字符串解压
c = 1
for i in range(c):
a = list('A11B')
b = []
stack = []
while len(a):
# print(b,stack)
x = a.pop(0)
if x!=')' and not x.isdigit():
if x=='(':
if len(stack) and stack[-1]!='(':
b += stack
stack.append(x)

elif x==')':
nu = int(a.pop(0))
while a[0].isdigit():
nu = nu + a.pop(0)
tem = stack.pop()
while stack[-1].isalpha():
tem += stack.pop()
stack.pop()
tem = tem*nu
# print('中间',tem,stack)
if len(stack)!=0:
stack += (tem)
else:
b += (tem)
else:
nu = x
while len(a) and a[0].isdigit():
nu = nu + a.pop(0)
nu = int(nu)
# print(nu)
tem = stack.pop()
while len(stack) and stack[-1].isalpha():
tem = stack.pop()
if len(stack):
stack += tem*nu
else:
b.append(tem*nu)
stack = []

if len(stack):
b = b + stack
b = [str(x) for x in b]
# print(''.join(b))
print(''.join(b))

#猿辅导##笔试题目#
全部评论
真的是,总是一下来才有比较正常的思路,笔试的时候想的办法总是蠢得要死,我写了三个方法才60%,而且没有考虑((这种情况,时间过了之后两分钟之内就想起来用栈就可以了,哎
点赞 回复 分享
发布于 2019-08-03 21:00

相关推荐

不愿透露姓名的神秘牛友
07-01 10:56
点赞 评论 收藏
分享
湫湫湫不会java:1.在校经历全删了2.。这些荣誉其实也没啥用只能说,要的是好的开发者不是好好学生3.项目五六点就行了,一个亮点一俩行,xxx技术解决,xxx问题带来xxx提升。第一页学历不行,然后啥有价值的信息也没有,到第二页看到项目了,第一个项目九点,第二个项目像凑数的俩点。总体给人又臭又长,一起加油吧兄弟
点赞 评论 收藏
分享
醉蟀:你不干有的是人干
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务