mirror of
https://github.com/aykhans/leet-code-problems.git
synced 2025-04-17 04:03:12 +00:00
first commit
This commit is contained in:
commit
6b2e6effe5
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.venv
|
3
accepted/__init__.py
Normal file
3
accepted/__init__.py
Normal 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
53
accepted/accepted_easy.py
Normal 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
|
1
accepted/accepted_hard.py
Normal file
1
accepted/accepted_hard.py
Normal file
@ -0,0 +1 @@
|
||||
class AcceptedHard: ...
|
42
accepted/accepted_medium.py
Normal file
42
accepted/accepted_medium.py
Normal 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
11
accepted_refused.py
Normal 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
3
refused/__init__.py
Normal 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
1
refused/refused_easy.py
Normal file
@ -0,0 +1 @@
|
||||
class RefusedEasy: ...
|
1
refused/refused_hard.py
Normal file
1
refused/refused_hard.py
Normal file
@ -0,0 +1 @@
|
||||
class RefusedHard: ...
|
1
refused/refused_medium.py
Normal file
1
refused/refused_medium.py
Normal file
@ -0,0 +1 @@
|
||||
class RefusedMedium: ...
|
0
solution.ipynb
Normal file
0
solution.ipynb
Normal file
Loading…
x
Reference in New Issue
Block a user