中级
四则运算
未完成
中级参考
代码结构已给出,请填写 ____ 处
def solve(____):
def precedence(____):
if op in '____':
return ____
if op in '____':
return ____
return ____
def apply_op(____):
if op == '____':
return a + b
if op == '____':
return a - b
if op == '____':
return a * b
if op == '____':
return a / b
values = []
ops = []
i = ____
while i < len(____):
if expr[i] == '____':
i += ____
continue
if expr[i].isdigit():
val = ____
while i < len(____) and expr[i].isdigit():
val = val * ____ + int(____)
i += ____
values.append(____)
elif expr[i] == '____':
ops.append(____)
i += ____
elif expr[i] == '____':
while ops and ops[-____] != '____':
val2 = values.pop()
val1 = values.pop()
op = ops.pop()
values.append(apply_op(____))
ops.pop()
i += ____
else:
while ops and precedence(____) >= precedence(____):
val2 = values.pop()
val1 = values.pop()
op = ops.pop()
values.append(apply_op(____))
ops.append(____)
i += ____
while ops:
val2 = values.pop()
val1 = values.pop()
op = ops.pop()
values.append(apply_op(____))
print(int(____))
示例
输入
3+5*2
期望输出
13
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199