关注
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中分割排序,最后合并。
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你的实习产出是真实的还是包装的? #
37311次浏览 438人参与
# 网申一定要掌握的小技巧 #
20658次浏览 86人参与
# 厦门银行科技岗值不值得投 #
16288次浏览 359人参与
# AI替代不了什么? #
649次浏览 22人参与
# 面试紧张时你会有什么表现? #
35002次浏览 224人参与
# 学历VS实习,哪个更重要? #
3364次浏览 72人参与
# 一人一道大厂面试题 #
125172次浏览 1303人参与
# 机械人求职现状 #
39914次浏览 321人参与
# 分享一个让你热爱工作的瞬间 #
67468次浏览 500人参与
# 你的实习什么时候入职 #
367560次浏览 2362人参与
# 汇川技术求职进展汇总 #
189355次浏览 1065人参与
# uu们,春招你还来吗? #
66794次浏览 842人参与
# 面试中,你被问过哪些奇葩问题? #
98188次浏览 1358人参与
# 发工资后,你做的第一件事是什么 #
99858次浏览 320人参与
# 牛油的搬砖plog #
188758次浏览 1254人参与
# 一人分享一道面试手撕题 #
111655次浏览 2655人参与
# 面试被问到不会的问题,你怎么应对? #
28506次浏览 738人参与
# 你都用vibe coding做过什么? #
24797次浏览 933人参与
# 90后北漂现状 #
36223次浏览 214人参与
# 工作上你捅过哪些篓子? #
68685次浏览 318人参与
# 关于春招你都做了哪些准备? #
145450次浏览 768人参与
