Skip to content

Commit a91020f

Browse files
committed
Add more puzzles 🧩
1 parent 130a672 commit a91020f

3 files changed

Lines changed: 100 additions & 0 deletions

File tree

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
class Solution:
2+
def isSubsequence(self, s: str, t: str) -> bool:
3+
m = len(s)
4+
n = len(t)
5+
if m == 0:
6+
return True
7+
elif n == 0:
8+
return False
9+
elif m == n:
10+
if s == t:
11+
return True
12+
else:
13+
return False
14+
15+
index = 0
16+
for l in s:
17+
new_index = t.find(l)
18+
if new_index > 0 and new_index == index:
19+
return False
20+
elif new_index >= index:
21+
index = new_index
22+
continue
23+
elif index > new_index:
24+
new_index = t[slice(index, len(t), 1)].find(l)
25+
if new_index < 0:
26+
return False
27+
else:
28+
continue
29+
else:
30+
return False
31+
if index:
32+
return True
33+
else:
34+
return False
35+
36+
37+
class BetterSolution:
38+
def isSubsequence(self, s: str, t: str) -> bool:
39+
if not s:
40+
return True
41+
42+
s_index = 0
43+
for l in t:
44+
if l == s[s_index]:
45+
s_index += 1
46+
if s_index == len(s):
47+
return True
48+
return False
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
class Solution:
2+
def findMaxAverage(self, nums: List[int], k: int) -> float:
3+
if k > len(nums):
4+
return 0
5+
if k == 0:
6+
return 0
7+
if not nums:
8+
return 0
9+
get_max = []
10+
index1 = 0
11+
index2 = k
12+
while index2 <= len(nums):
13+
get_max.append(sum(nums[index1:index2]))
14+
index1 += 1
15+
index2 += 1
16+
if get_max:
17+
biggest = max(get_max)
18+
print(biggest)
19+
result = (biggest / k)
20+
print(result)
21+
return result
22+
else:
23+
return 0
24+
25+
class BetterSolution:
26+
def findMaxAverage(self, nums: List[int], k: int) -> float:
27+
if k > len(nums):
28+
return 0
29+
if k == 0:
30+
return 0
31+
if not nums:
32+
return 0
33+
index1 = 0
34+
index2 = k
35+
biggest = sum(nums[index1:index2])
36+
while index2 <= len(nums):
37+
if sum(nums[index1:index2]) > biggest:
38+
biggest = sum(nums[index1:index2])
39+
index1 += 1
40+
index2 += 1
41+
if biggest:
42+
result = (biggest / k)
43+
return result
44+
else:
45+
return 0
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
class Solution:
2+
def largestAltitude(self, gain: List[int]) -> int:
3+
starting = [0]
4+
for a in gain:
5+
starting.append(starting[-1] + a)
6+
return max(starting)
7+

0 commit comments

Comments
 (0)