解题思路:
注意事项:
参考代码:
syouxianji = {'^':6,'/':4,'*':3,'-':2,'+':1,'':0,'(':0,')':0}
try:
s = input()
while s!='#':
slis = []
t = ''
for i in range(len(s)):
if s[i].isdigit():
t+=s[i]
if i==len(s)-1 and t!='':
slis.append(t)
else:
if t!='':
slis.append(t)
slis.append(s[i])
t=''
ss = []
t = 2
i=0
while i<len(slis):
if slis[i] == '(':
ss.append(i)
elif slis[i]==')':
l=ss.pop()
try:
youfuhao = slis[i + 1]
except:
youfuhao = ''
if l==0:
zuofuhao = ''
else:zuofuhao = slis[l - 1]
try:
zhongfuhao=slis[i-t]
except:zhongfuhao=''
if i-2==l or \
(zuofuhao == '(' and youfuhao == ')')\
or ( (zhongfuhao == '*') and ((syouxianji[zhongfuhao] >= syouxianji[zuofuhao]) and (syouxianji[zhongfuhao]+1 >= syouxianji[youfuhao]))) \
or ((zhongfuhao == '/') and ((syouxianji[zhongfuhao] > syouxianji[zuofuhao]) and (
syouxianji[zhongfuhao] >= syouxianji[youfuhao]))) \
or ((zhongfuhao=='-' or zhongfuhao == '^') and ((syouxianji[zhongfuhao] > syouxianji[zuofuhao]) and (
syouxianji[zhongfuhao] > syouxianji[youfuhao]))) \
or ((zhongfuhao == '+' ) and ( syouxianji[zhongfuhao] >= syouxianji[zuofuhao]) and (
syouxianji[zhongfuhao] >= syouxianji[youfuhao])):
if youfuhao==')':
t+=2
slis.pop(i)
slis.pop(l)
i-=2
else:
if youfuhao == ')':
t += 4
i+=1
print(''.join(slis))
s = input()
except:pass
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复