Эта функция должна добавлять 1 к числу, указанному в форме списка. Если список равен [1, 2, 3]
, то эта функция должна возвращать [1, 2, 4]
, поскольку 123 + 1 == 124
.
Ниже приведена рассматриваемая функция:
def plusOne(self, A):
val = 1;
for i in range(len(A)-1,0,-1):
val = val + A[i]
borrow = int(val/10)
if borrow == 0:
A[i] = val
break;
else:
A[i] = val%10
val = borrow
A = [borrow] + A
while A[0]==0:
del A[0]
return A
Сообщение об ошибке:
Traceback (most recent call last):
File "main.py", line 225, in
Z = obj.plusOne(A)
File "/tmp/judge/solution.py", line 8, in plusOne
A = [borrow] + A
UnboundLocalError: local variable 'borrow' referenced before assignment
И, что удивительно, приведенный ниже код работает без ошибок:
class Solution:
# @param A : list of integers
# @return a list of integers
def plusOne(self, A):
val = 1;
for i in range(len(A),0,-1):
val = val + A[i-1]
borrow = int(val/10)
if borrow == 0:
A[i-1] = val
break;
else:
A[i-1] = val%10
val = borrow
A = [borrow] + A
while A[0]==0:
del A[0]
return A
Я до сих пор не понимаю, что если инициализация переменной заимствования непосредственно внутри l oop вызывает ошибку, то приведенный выше фрагмент тоже должен выдавать ошибку, верно?