Отладка Leetcode 66 "Plus One" [закрыто]Python

Программы на Python
Anonymous
Отладка Leetcode 66 "Plus One" [закрыто]

Сообщение Anonymous »

Я не уверен, почему мой код выдает именно такой результат.
Эта проблема из Leetcode 66 «Plus One», вот краткое описание: задано число, представленное как цифры целочисленного массива, увеличьте большое целое число на единицу и верните новый массив цифр. Итак, если цифры = [1,2,3], результат должен быть [1,2,4].
Мое решение:

Код: Выделить всё

    output = []

p = 0
for d in range(len(digits)):
p += digits[d] * 10**(len(digits)-d)
p += 1

for num in str(p):
output.append(int(num))
return output
Для тестового примера 1, где цифры = [1,2,3], мое решение выводит [1, 2, 3, 1]. Я не понимаю, почему я получаю дополнительный элемент в выходном массиве, ведь когда я добавляю 1 к p, p должно равняться 124.
Я пытался избавиться от p+=1 в конце моего первого цикла for и вместо этого установить p равным 1, что дало тот же результат.>

Подробнее здесь: https://stackoverflow.com/questions/788 ... -debugging

Вернуться в «Python»