Skip to content

Commit 0cf05ba

Browse files
committed
adding plus one algo
1 parent a24fe7b commit 0cf05ba

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
from typing import List, Union, Collection, Mapping, Optional
2+
from abc import ABC, abstractmethod
3+
4+
class Solution:
5+
def plusOne(self, digits: List[int]) -> List[int]:
6+
7+
len_digits = len(digits)
8+
9+
for i in range(len_digits - 1, -1, -1):
10+
11+
if digits[i] != 9:
12+
digits[i] += 1
13+
break
14+
else:
15+
digits[i] = 0
16+
17+
if digits[0] == 0:
18+
return [1] + digits
19+
else:
20+
return digits
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import unittest
2+
from src.my_project.interviews.top_150_questions_round_13\
3+
.plus_one import Solution
4+
5+
6+
class PlusOneTestCase(unittest.TestCase):
7+
8+
def test_leading_one(self):
9+
solution = Solution()
10+
output = solution.plusOne(digits=[9])
11+
target = [1, 0]
12+
for k, v in enumerate(target):
13+
self.assertEqual(v, output[k])
14+
15+
def test_no_leading_one(self):
16+
solution = Solution()
17+
output = solution.plusOne(digits=[1, 2])
18+
target = [1, 3]
19+
for k, v in enumerate(target):
20+
self.assertEqual(v, output[k])

0 commit comments

Comments
 (0)