diff --git a/longest-repeating-character-replacement/jylee2033.py b/longest-repeating-character-replacement/jylee2033.py new file mode 100644 index 000000000..6f9f3f6f1 --- /dev/null +++ b/longest-repeating-character-replacement/jylee2033.py @@ -0,0 +1,27 @@ +class Solution: + def characterReplacement(self, s: str, k: int) -> int: + # "AABABBA", 1 + # l = 0 + # r = 4 + # max_freq = 0 + # max_len = 4 + # {"A":1, "B":2} + + l = 0 + max_len = 0 + max_freq = 0 + seen = {} + + for r, char in enumerate(s): + seen[char] = seen.get(char, 0) + 1 + max_freq = max(max_freq, seen[char]) + + while (r - l + 1) - max_freq > k: + seen[s[l]] -= 1 + l += 1 + + max_len = max(max_len, r - l + 1) + return max_len + +# Time Complexity: O(n) +# Space Complexity: O(1) diff --git a/reverse-bits/jylee2033.py b/reverse-bits/jylee2033.py new file mode 100644 index 000000000..f2ded7fae --- /dev/null +++ b/reverse-bits/jylee2033.py @@ -0,0 +1,14 @@ +class Solution: + def reverseBits(self, n: int) -> int: + # 0100 + + res = 0 + + for _ in range(32): + res = (res << 1) | (n & 1) + n >>= 1 + + return res + +# Time Complexity: O(1) +# Space Complexity: O(1)