Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions clone-graph/8804who.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
"""
# Definition for a Node.
class Node:
def __init__(self, val = 0, neighbors = None):
self.val = val
self.neighbors = neighbors if neighbors is not None else []
"""

from typing import Optional

class Solution:
def cloneGraph(self, node: Optional['Node']) -> Optional['Node']:
if not node:
return
visited = {}
new_node = Node()
def dfs(original_node, new_node):
if original_node.val in visited:
return
visited[original_node.val] = new_node
new_node.val = original_node.val
new_node.neighbors = []

for neighbor in original_node.neighbors:
new_node.neighbors.append(Node())
if neighbor.val not in visited:
dfs(neighbor, new_node.neighbors[-1])
new_node.neighbors[-1] = visited[neighbor.val]
dfs(node, new_node)
return new_node



13 changes: 13 additions & 0 deletions longest-common-subsequence/8804who.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
class Solution:
def longestCommonSubsequence(self, text1: str, text2: str) -> int:
dp = [[0 for _ in range(len(text2)+1)] for _ in range(len(text1)+1)]

for i in range(1, len(text1)+1):
for j in range(1, len(text2)+1):
if text1[i-1] == text2[j-1]:
dp[i][j] = dp[i-1][j-1]+1
else:
dp[i][j] = max(dp[i-1][j], dp[i][j-1])

return dp[-1][-1]

26 changes: 26 additions & 0 deletions longest-repeating-character-replacement/8804who.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
class Solution:
def characterReplacement(self, s: str, k: int) -> int:
n = 65
answer = 1
for i in range(26):
t = chr(n+i)
start = 0
end = 0
x = 1 if s[start] != t else 0

while True:
if x > k:
if s[start] != t:
x -= 1
start += 1
else:
end += 1
if end == len(s):
break
if s[end] != t:
x += 1
if x <= k:
answer = max(answer, end-start+1)
return answer


23 changes: 23 additions & 0 deletions palindromic-substrings/8804who.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
class Solution:
def countSubstrings(self, s: str) -> int:
answer = 0
for i in range(len(s)):
for j in range(len(s)):
if i - j < 0 or i + j >= len(s):
break
if s[i-j] == s[i+j]:
answer += 1
else:
break

if i+1 >= len(s) or s[i] != s[i+1]:
continue
for j in range(len(s)):
if i - j < 0 or i + 1 + j >= len(s):
break
if s[i-j] == s[i+1+j]:
answer += 1
else:
break
return answer

4 changes: 4 additions & 0 deletions reverse-bits/8804who.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
class Solution:
def reverseBits(self, n: int) -> int:
return int(format(n, "032b")[::-1], 2)