关注
# -*- coding: utf-8 -*-
s = raw_input()
ops, nums = [], []
n = len(s)
ret = -1
flag = True
i = 0
while i < n:
if s[i].isdigit():
j = i
num = 0
while j < n and s[j].isdigit():
num = num * 10 + ord(s[j]) - ord('0')
j += 1
nums.append(num)
i = j - 1
elif s[i] == ')':
if len(ops) == 0:
flag = False
break
op = ops[-1]
ops.pop()
if op == '^' and len(nums) > 0:
ans = nums[-1]
nums.pop()
nums.append(ans + 1)
elif (op == '*' or op == '+') and len(nums) > 1:
a, b = nums[-1], nums[-2]
nums.pop()
nums.pop()
nums.append((a * b) if op == '*' else (a + b))
else:
flag = False
break
if len(ops) == 0 or ops[-1] is not '(':
flag = False
break
ops.pop()
if len(ops) == 0:
ret = nums[-1]
if len(ops) == 0 and i < n - 1 and len(nums) > 0:
nums.pop()
elif s[i] == ' ':
pass
else:
ops.append(s[i])
i += 1
if len(ops) > 0:
flag = False
if ret is not -1:
print ret
else:
print -1 if flag == False else nums[-1]
查看原帖
点赞 1
相关推荐
11-22 14:57
太原理工大学 线下拓展运营 点赞 评论 收藏
分享
牛客热帖
正在热议
# 25届秋招总结 #
322931次浏览 2998人参与
# 上班苦还是上学苦呢? #
69929次浏览 617人参与
# 百度开奖 #
180261次浏览 1128人参与
# 地方国企笔面经互助 #
4402次浏览 12人参与
# 如果有时光机,你最想去到哪个年纪? #
20695次浏览 357人参与
# 选完offer后,你后悔学本专业吗 #
21552次浏览 155人参与
# 阿里云管培生offer #
36408次浏览 421人参与
# 如何一边实习一边秋招 #
995892次浏览 12661人参与
# 我的实习求职记录 #
6067477次浏览 83521人参与
# 招聘要求与实际实习内容不符怎么办 #
10679次浏览 276人参与
# 入职第一天,你准备什么时候下班 #
21498次浏览 144人参与
# 许愿池 #
214553次浏览 2534人参与
# bilibili求职进展汇总 #
32893次浏览 354人参与
# 学历or实习经历,哪个更重要 #
53503次浏览 419人参与
# 实习工作,你找得还顺利吗? #
247562次浏览 2902人参与
# 海康威视求职进展汇总 #
400373次浏览 3407人参与
# 通信硬件薪资爆料 #
607523次浏览 5150人参与
# 正在实习的你,几点下班 #
52994次浏览 395人参与
# 如果再来一次,你还会学硬件吗 #
95067次浏览 1169人参与
# 工作两年想退休了 #
52961次浏览 672人参与
# 软件开发薪资爆料 #
2192643次浏览 21878人参与
# 我的失利项目复盘 #
668164次浏览 11247人参与