英文:
Why is python returning 13/5 as 0? (working on reverse polish notation problem)
问题
我在LeetCode上解决这个问题,但它一直在错误地进行除法运算。
s = []
for token in tokens:
print(s)
if token.isnumeric():
s.append(int(token))
else:
a = s.pop()
b = s.pop()
if token == '+':
s.append(a + b)
elif token == '-':
s.append(a - b)
elif token == '*':
s.append(a * b)
elif token == '/':
print(int(a / b)) # 这里应该是int(a / b)
s.append(int(a / b))
return s.pop()
当我打印这个时:
[4]
[4, 13]
[4, 13, 5]
0 <- 这里应该是2
[4, 0]
英文:
I'm working on this problem in leet code and it keeps doing division incorrectly.
s = []
for token in tokens:
print(s)
if token.isnumeric():
s.append(int(token))
else:
a=s.pop()
b=s.pop()
if token == '+':
s.append(a+b)
elif token == '-':
s.append(a-b)
elif token == '*':
s.append(a*b)
elif token == '/':
print(int(a/b))
s.append(int(a/b))
return s.pop()`
when i print this:
[4]
[4, 13]
[4, 13, 5]
0 <- this should be 2
[4, 0]
答案1
得分: 5
你在进行反向操作。
[4, 13, 5]
a = s.pop() # a现在是5
[4, 13]
b = s.pop() # b现在是13
[4]
int(a/b) # 5 // 13 = 0
你可能要考虑反转你的弹出操作,或者反转你的除法。
英文:
You are dividing backwards.
[4, 13, 5]
a = s.pop() # a is now 5
[4, 13]
b = s.pop() # b is now 13
[4]
int(a/b) # 5 // 13 = 0
You either want to reverse your pops, or reverse your division.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论