关注
def parse(s2):
l=0
opt=[]
num=[]
for i,c in enumerate(s2):
if c=='*'or c=='/':
num.append(int(s2[l:i]))
l=i+1
opt.append(c)
num.append(int(s2[l:]))
num.sort()
res=""
for i,c in enumerate(opt):
res=res+str(num[i])
res=res+c
res=res+str(num[-1])
return res
s=input()
s2=""
for i,c in enumerate(s):
if c=='-'and s[i-1]!='+'and s[i-1]!='*'and s[i-1]!='*':
s2=s2+'+'
s2=s2+c
s_list=s2.split('+')
res=[]
num2=[]
for st in s_list:
if len(st)==1 or len(st)==2:
num2.append(int(st))
elif len(st)>2:
num2.sort()
for c in num2:
if c<0 and res and len(res[-1])<=2:
res.pop()
res.append(str(c))
res.append('+')
res.append(parse(st))
num2.clear()
if len(num2)==0:
res=''.join(res)
print(res)
else:
num2.sort()
for c in num2:
if c>0:
res.append("+")
res.append(str(c))
res=''.join(res)
print(res) 丑陋的代码,思路是在所有前边不是* / +号的 -号前插入+号,然后按+号split,按切出来大小大于二的串分割排序,大小大于二的串单独送入parse中分割排序,最后合并。
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 26届的你们有几段实习? #
19268次浏览 270人参与
# 你小时候最想从事什么职业 #
102662次浏览 1771人参与
# 你被哪些公司秒挂过? #
18454次浏览 182人参与
# 网申一定要掌握的小技巧 #
9616次浏览 65人参与
# 如何提高实习转正率? #
7485次浏览 133人参与
# 新凯来求职进展汇总 #
41004次浏览 108人参与
# 你认为哪些项目算烂大街? #
8170次浏览 196人参与
# 机械校招之路总结 #
92391次浏览 1889人参与
# 你后悔自己读研吗? #
8839次浏览 175人参与
# 你以为的实习VS真实的实习 #
11329次浏览 131人参与
# 月薪多少能在一线城市生存 #
10541次浏览 166人参与
# 腾讯工作体验 #
479849次浏览 3498人参与
# 找工作时的取与舍 #
81294次浏览 577人参与
# 最难的技术面是哪家公司? #
5879次浏览 57人参与
# 秋招拿一个offer可以躺平吗 #
144897次浏览 928人参与
# 安利/避雷我的专业 #
77660次浏览 526人参与
# 面试等了一周没回复,还有戏吗 #
137154次浏览 1229人参与
# 你想留在一线还是回老家? #
50004次浏览 513人参与
# 选择和努力,哪个更重要? #
86030次浏览 745人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
114867次浏览 799人参与