Skip to content

Commit f58484d

Browse files
committed
[main] Added problems
1 parent c2402a1 commit f58484d

File tree

7 files changed

+180
-0
lines changed

7 files changed

+180
-0
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
from typing import List
2+
3+
class Solution:
4+
def any_available_letters(self, letter: str, available_letters: List[str], availability: dict(str, bool)) -> str:
5+
pass
6+
7+
def repeatedLimitedString(self, s: str, repeatLimit: int) -> str:
8+
constructed_string = ""
9+
letters = sorted(set(s), reverse=True)
10+
letter_occurrence = [s.count(x) for x in letters]
11+
repeat_count = dict.fromkeys(letters, 0)
12+
for each_letter in s:
13+
14+
return constructed_string
15+
16+
17+
if __name__ == "__main__":
18+
sol = Solution()
19+
print(sol.repeatedLimitedString("cczazcc", 3))
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
from typing import List
2+
from pprint import pprint
3+
4+
5+
class Solution:
6+
def longestIncreasingPath(self, matrix: List[List[int]]) -> int:
7+
base_len = len(matrix)
8+
col_len = len(matrix[0])
9+
range_base = range(base_len)
10+
range_col = range(col_len)
11+
longest_paths = [[1] * col_len for x in range_base]
12+
for i in range(len(matrix)):
13+
for j in range(len(matrix[0])):
14+
self.find_longest_path(matrix, longest_paths, i, j)
15+
max_len = 1
16+
pprint(longest_paths)
17+
for each_row in longest_paths:
18+
max_len = max(max_len, max(each_row))
19+
return max_len
20+
21+
def find_longest_path(
22+
self,
23+
matrix: List[List[int]],
24+
dfs_table: List[List[int]],
25+
row: int,
26+
col: int,
27+
current_length: int = 1,
28+
) -> None:
29+
if row != -1 and col != -1 and row < len(matrix) and col < len(matrix[0]):
30+
current_element = matrix[row][col]
31+
left_element = matrix[row][col - 1] if col > 0 else 1
32+
right_element = matrix[row][col + 1] if col < len(matrix[0]) - 1 else 1
33+
bottom_element = matrix[row + 1][col] if row < len(matrix) - 1 else 1
34+
top_element = matrix[row - 1][col] if row > 0 else 1
35+
36+
if dfs_table[row][col] != 1:
37+
return
38+
39+
if top_element > current_element:
40+
self.find_longest_path(
41+
matrix, dfs_table, row - 1, col, current_length + 1
42+
) # top
43+
if bottom_element > current_element:
44+
self.find_longest_path(
45+
matrix, dfs_table, row + 1, col, current_length + 1
46+
)
47+
if right_element > current_element:
48+
self.find_longest_path(
49+
matrix, dfs_table, row, col + 1, current_length + 1
50+
)
51+
if left_element > current_element:
52+
self.find_longest_path(
53+
matrix, dfs_table, row, col - 1, current_length + 1
54+
)
55+
56+
dfs_left = (
57+
dfs_table[row][col - 1]
58+
if col > 0 and matrix[row][col - 1] > matrix[row][col]
59+
else 0
60+
)
61+
dfs_right = (
62+
dfs_table[row][col + 1]
63+
if col < len(matrix[0]) - 1 and matrix[row][col + 1] > matrix[row][col]
64+
else 0
65+
)
66+
dfs_bottom = (
67+
dfs_table[row + 1][col]
68+
if row < len(matrix) - 1 and matrix[row + 1][col] > matrix[row][col]
69+
else 0
70+
)
71+
dfs_top = (
72+
dfs_table[row - 1][col]
73+
if row > 0 and matrix[row - 1][col] > matrix[row][col]
74+
else 0
75+
)
76+
dfs_table[row][col] = (
77+
max(dfs_left, max(dfs_right, max(dfs_bottom, dfs_top))) + 1
78+
)
79+
80+
81+
if __name__ == "__main__":
82+
sol = Solution()
83+
a = [[9, 9, 4], [6, 6, 8], [2, 1, 1]]
84+
print(sol.longestIncreasingPath(a))
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
"use strict";
2+
exports.__esModule = true;
3+
exports.cleanString = void 0;
4+
function cleanString(s) {
5+
var stack = [];
6+
for (var i = 0; i < s.length; i++) {
7+
switch (s[i]) {
8+
case "#": {
9+
stack = stack.slice(0, -1);
10+
break;
11+
}
12+
default: {
13+
stack.push(s[i]);
14+
break;
15+
}
16+
}
17+
}
18+
return stack.join("");
19+
}
20+
exports.cleanString = cleanString;
21+
console.log(cleanString("abc##d######"));
22+
console.log(cleanString("abc#d##c"));
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
export function cleanString(s: string): string {
2+
let stack: string[] = [];
3+
for (let i = 0; i < s.length; i++) {
4+
switch (s[i]) {
5+
case "#": {
6+
stack = stack.slice(0, -1);
7+
break;
8+
}
9+
default: {
10+
stack.push(s[i]);
11+
break;
12+
}
13+
}
14+
}
15+
return stack.join("");
16+
}
17+
18+
console.log(cleanString("abc##d######"));
19+
console.log(cleanString("abc#d##c"));
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
"use strict";
2+
exports.__esModule = true;
3+
exports.seven = void 0;
4+
function seven(m) {
5+
var steps = 0;
6+
var result = m;
7+
while (result > 99) {
8+
var mstr = result.toString();
9+
var last_digit = mstr.slice(-1);
10+
var remaining = mstr.slice(0, -1);
11+
result = Number.parseInt(remaining) - Number.parseInt(last_digit) * 2;
12+
steps++;
13+
}
14+
return [result, steps];
15+
}
16+
exports.seven = seven;
17+
console.log(seven(477557101));
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
export function seven(m: number): number[] {
2+
let steps = 0;
3+
let result = m;
4+
while (result > 99) {
5+
const mstr = result.toString();
6+
const last_digit = mstr.slice(-1);
7+
const remaining = mstr.slice(0, -1);
8+
result = Number.parseInt(remaining) - Number.parseInt(last_digit) * 2;
9+
steps++;
10+
}
11+
return [result, steps];
12+
}
13+
14+
console.log(seven(1021));

tsProblems/hoopCount/hoopCount.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
export function hoopCount(n: number): string {
2+
return n > 10
3+
? "Great, now move on to tricks"
4+
: "Keep at it until you get it";
5+
}

0 commit comments

Comments
 (0)