File tree Expand file tree Collapse file tree
longest-common-subsequence
longest-repeating-character-replacement Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ """
2+ # Definition for a Node.
3+ class Node:
4+ def __init__(self, val = 0, neighbors = None):
5+ self.val = val
6+ self.neighbors = neighbors if neighbors is not None else []
7+ """
8+
9+ from typing import Optional
10+
11+ class Solution :
12+ def cloneGraph (self , node : Optional ['Node' ]) -> Optional ['Node' ]:
13+ if not node :
14+ return
15+ visited = {}
16+ new_node = Node ()
17+ def dfs (original_node , new_node ):
18+ if original_node .val in visited :
19+ return
20+ visited [original_node .val ] = new_node
21+ new_node .val = original_node .val
22+ new_node .neighbors = []
23+
24+ for neighbor in original_node .neighbors :
25+ new_node .neighbors .append (Node ())
26+ if neighbor .val not in visited :
27+ dfs (neighbor , new_node .neighbors [- 1 ])
28+ new_node .neighbors [- 1 ] = visited [neighbor .val ]
29+ dfs (node , new_node )
30+ return new_node
31+
32+
33+
Original file line number Diff line number Diff line change 1+ class Solution :
2+ def longestCommonSubsequence (self , text1 : str , text2 : str ) -> int :
3+ dp = [[0 for _ in range (len (text2 )+ 1 )] for _ in range (len (text1 )+ 1 )]
4+
5+ for i in range (1 , len (text1 )+ 1 ):
6+ for j in range (1 , len (text2 )+ 1 ):
7+ if text1 [i - 1 ] == text2 [j - 1 ]:
8+ dp [i ][j ] = dp [i - 1 ][j - 1 ]+ 1
9+ else :
10+ dp [i ][j ] = max (dp [i - 1 ][j ], dp [i ][j - 1 ])
11+
12+ return dp [- 1 ][- 1 ]
13+
Original file line number Diff line number Diff line change 1+ class Solution :
2+ def characterReplacement (self , s : str , k : int ) -> int :
3+ n = 65
4+ answer = 1
5+ for i in range (26 ):
6+ t = chr (n + i )
7+ start = 0
8+ end = 0
9+ x = 1 if s [start ] != t else 0
10+
11+ while True :
12+ if x > k :
13+ if s [start ] != t :
14+ x -= 1
15+ start += 1
16+ else :
17+ end += 1
18+ if end == len (s ):
19+ break
20+ if s [end ] != t :
21+ x += 1
22+ if x <= k :
23+ answer = max (answer , end - start + 1 )
24+ return answer
25+
26+
Original file line number Diff line number Diff line change 1+ class Solution :
2+ def countSubstrings (self , s : str ) -> int :
3+ answer = 0
4+ for i in range (len (s )):
5+ for j in range (len (s )):
6+ if i - j < 0 or i + j >= len (s ):
7+ break
8+ if s [i - j ] == s [i + j ]:
9+ answer += 1
10+ else :
11+ break
12+
13+ if i + 1 >= len (s ) or s [i ] != s [i + 1 ]:
14+ continue
15+ for j in range (len (s )):
16+ if i - j < 0 or i + 1 + j >= len (s ):
17+ break
18+ if s [i - j ] == s [i + 1 + j ]:
19+ answer += 1
20+ else :
21+ break
22+ return answer
23+
Original file line number Diff line number Diff line change 1+ class Solution :
2+ def reverseBits (self , n : int ) -> int :
3+ return int (format (n , "032b" )[::- 1 ], 2 )
4+
You can’t perform that action at this time.
0 commit comments