algos_and_structures/leetcode/array_66_plus_one/my_solution.py
2024-11-02 14:03:30 +03:00

44 lines
1 KiB
Python

from typing import List
class Solution:
def plusOne(self, digits: List[int]) -> List[int]:
j = len(digits) - 1
if j == 0:
if digits[0] + 1 < 10:
digits[0] = digits[0] + 1
return digits
else:
digits[0] = 1
digits.append(0)
return digits
digits[j] = digits[j] + 1
while j >= 1:
if digits[j] < 10:
return digits
if digits[j] == 10:
digits[j] = 0
digits[j - 1] = digits[j - 1] + 1
j -= 1
if digits[0] == 10:
digits[0] = 1
digits.append(0)
return digits
sl1 = Solution()
print(sl1.plusOne([1, 3, 5, 6]))
print("---")
print(sl1.plusOne([1, 2, 3]))
print("---")
print(sl1.plusOne([4, 3, 2, 1]))
print("---")
print(sl1.plusOne([9, 9, 9]))
print("---")
print(sl1.plusOne([0]))
print("---")
print(sl1.plusOne([9]))
print("---")
print(sl1.plusOne([1, 9, 9, 9, 9]))
print("---")
print(sl1.plusOne([9, 8, 9]))