简短答案: 当
s1[i] == s2[i]和时,您的代码是错误的
carry == 1。
较长的答案: 你应该调整你的代码有三个独立的情况下
s==-1,
s==0和
s==1,然后分支上的价值
carry每种情况中:
if s == -1: # 0-1 if carry == 0: ... else: ...elif s == 0: # 1-1 or 0-0 if carry == 0: ... else: ...else: # 1-0 if carry == 0: ... else: ...
这样,您就每种可能性都有一个单独的障碍,因此没有机会像您初次尝试那样忽略一个案例。



