关注
# -*- 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
相关推荐
点赞 评论 收藏
分享
09-28 00:25
广州华立学院 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 如果秋招能重来,我会____ #
3551次浏览 40人参与
# 苦尽甘来时,再讲来时路 #
3219次浏览 72人参与
# “vivo”个offer #
10715次浏览 92人参与
# 为了实习逃课值吗? #
6344次浏览 62人参与
# 机械求职避坑tips #
70209次浏览 479人参与
# 如果上班像打游戏,你最想解锁什么技能 #
974次浏览 18人参与
# 快手技术岗信息交流阵地 #
11245次浏览 72人参与
# 一份好的简历长什么样? #
3411次浏览 98人参与
# 大学最后一个寒假,我想…… #
58727次浏览 638人参与
# 秋招许愿,本周能____ #
8492次浏览 58人参与
# 应届生第一份工资要多少合适 #
2120次浏览 29人参与
# 投递无反馈,如何优化求职策略? #
1326次浏览 25人参与
# 班味很重的人是啥样的? #
2012次浏览 21人参与
# 新凯来求职进展汇总 #
56918次浏览 149人参与
# 机械制造秋招总结 #
81367次浏览 813人参与
# 选择和努力,哪个更重要? #
119185次浏览 976人参与
# 华为海思工作体验 #
32822次浏览 138人参与
# 如何KTV领导 #
76056次浏览 512人参与
# 牛客树洞,我想对你说 #
29411次浏览 208人参与
# 25届非技术实习投递记录 #
134053次浏览 994人参与
# 选完offer后,你后悔学机械吗? #
42191次浏览 247人参与
# 应届生被毁约被毁意向了怎么办 #
50073次浏览 283人参与
