first commit

This commit is contained in:
ayxan 2022-08-19 00:15:58 +04:00
commit 6b2e6effe5
11 changed files with 117 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.venv

3
accepted/__init__.py Normal file
View File

@ -0,0 +1,3 @@
from .accepted_easy import AcceptedEasy
from .accepted_medium import AcceptedMedium
from .accepted_hard import AcceptedHard

53
accepted/accepted_easy.py Normal file
View File

@ -0,0 +1,53 @@
from typing import List
class AcceptedEasy:
def roman_to_int(self, s: str) -> int:
"""
Link: https://leetcode.com/problems/roman-to-integer/
Runtime: 103 ms
"""
roman_map = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}
n = len(s)
num = roman_map[s[n - 1]]
for i in range(n - 2, -1, -1):
if roman_map[s[i]] >= roman_map[s[i + 1]]:
num += roman_map[s[i]]
else:
num -= roman_map[s[i]]
return num
def length_of_last_word(self, s: str) -> int: # sourcery skip: use-next
"""
Link: https://leetcode.com/problems/length-of-last-word/
Runtime: 54 ms
"""
strIndex = -1
for i in range(len(s)-1, -1, -1):
if s[i] != ' ':
strIndex = i
break
spaceIndex = -1
for i in range(strIndex, -1, -1):
if s[i] == ' ':
spaceIndex = i
break
return strIndex - spaceIndex
def plus_one(self, digits: List[int]) -> List[int]:
# sourcery skip: inline-immediately-returned-variable, list-comprehension
"""
Link: https://leetcode.com/problems/plus-one/
Runtime: 34 ms
"""
number = 0
for i in digits:
number = (number + i) * 10
number = number // 10 + 1
number_list = []
for i in str(number):
number_list.append(int(i))
return number_list

View File

@ -0,0 +1 @@
class AcceptedHard: ...

View File

@ -0,0 +1,42 @@
from typing import List
class AcceptedMedium:
def reverse_int(self, x: int) -> int:
"""
Link: https://leetcode.com/problems/reverse-integer/
Runtime: 36 ms
"""
ctr = 1
if x < 0:
ctr = -1
x *= -1
nr = 0
while x > 0:
nr = (nr + (x % 10)) * 10
x //= 10
nr //= 10
return nr * ctr if -2147483648 <= nr <= 2147483647 else 0
def letter_combinations(self, digits: str) -> List[str]:
"""
Link: https://leetcode.com/problems/letter-combinations-of-a-phone-number/
Runtime: 39 ms
"""
# sourcery skip: use-itertools-product
number_to_string = {'2': ['a', 'b', 'c'], '3': ['d', 'e', 'f'], '4': ['g', 'h', 'i'],
'5': ['j', 'k', 'l'], '6': ['m', 'n', 'o'], '7': ['p', 'q', 'r', 's'],
'8': ['t', 'u', 'v'], '9': ['w', 'x', 'y', 'z']}
l = ['']
l2 = []
for n in digits:
for s in number_to_string[n]:
for i in l:
l2.append(i+s)
l = l2.copy()
l2 = []
return [] if l[0] == '' else l

11
accepted_refused.py Normal file
View File

@ -0,0 +1,11 @@
from .accepted import (AcceptedEasy,
AcceptedMedium,
AcceptedHard)
from .refused import (RefusedEasy,
RefusedMedium,
RefusedHard)
class LeetCodeRefused(RefusedEasy, RefusedMedium, RefusedHard): ...
class LeetCodeAccepted(AcceptedEasy, AcceptedMedium, AcceptedHard): ...

3
refused/__init__.py Normal file
View File

@ -0,0 +1,3 @@
from .refused_easy import RefusedEasy
from .refused_medium import RefusedMedium
from .refused_hard import RefusedHard

1
refused/refused_easy.py Normal file
View File

@ -0,0 +1 @@
class RefusedEasy: ...

1
refused/refused_hard.py Normal file
View File

@ -0,0 +1 @@
class RefusedHard: ...

View File

@ -0,0 +1 @@
class RefusedMedium: ...

0
solution.ipynb Normal file
View File