关注
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中分割排序,最后合并。
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 面试问题记录 #
25613次浏览 440人参与
# 面试经验谈 #
16437次浏览 264人参与
# 京东TGT #
32142次浏览 153人参与
# 假如我穿越到了妈妈的18岁 #
581次浏览 25人参与
# 对妈妈没说出口的话 #
9399次浏览 259人参与
# 面试吐槽bot #
3308次浏览 43人参与
# 职场新人生存指南 #
335806次浏览 7201人参与
# 妈妈治愈了你哪些脆皮时刻 #
3800次浏览 93人参与
# 异地恋该为对方跳槽吗 #
25133次浏览 125人参与
# 硬件人更看重稳定还是高薪 #
40229次浏览 209人参与
# 请用你的专业向妈妈表白 #
2471次浏览 39人参与
# 硬件人秋招的第一个offer #
66241次浏览 1082人参与
# 机械求职避坑tips #
41674次浏览 355人参与
# 工作一周年分享 #
14404次浏览 100人参与
# 入职第五天,你被拉进了几个工作群 #
13458次浏览 77人参与
# 机械人,你的第一份感谢信是谁给的 #
22567次浏览 295人参与
# 视觉/交互/设计招聘信息汇总 #
10053次浏览 595人参与
# 租房找室友 #
28868次浏览 148人参与
# 不考虑转正,实习多久合适 #
24851次浏览 119人参与
# 签约有哪些注意事项 #
33764次浏览 241人参与
# 上班苦还是上学苦呢? #
214120次浏览 1288人参与