From f83ac5cd745822d8ff8b5650d7bae93f75c484f9 Mon Sep 17 00:00:00 2001 From: pli Date: Sat, 13 Sep 2025 22:38:23 +0900 Subject: [PATCH] feat: 8 weeks --- .../chordpli.py | 23 +++++++++++++++++++ reverse-bits/chordpli.py | 17 ++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 longest-repeating-character-replacement/chordpli.py create mode 100644 reverse-bits/chordpli.py diff --git a/longest-repeating-character-replacement/chordpli.py b/longest-repeating-character-replacement/chordpli.py new file mode 100644 index 000000000..9c86131e0 --- /dev/null +++ b/longest-repeating-character-replacement/chordpli.py @@ -0,0 +1,23 @@ +class Solution: + def characterReplacement(self, s: str, k: int) -> int: + start, max_len, max_freq = 0, 0, 0 + + window = {} + for end in range(len(s)): + char = s[end] + window[char] = window.get(char, 0) + 1 + max_freq = max(max_freq, window[char]) + + while (end - start + 1) - max_freq > k: + left_char = s[start] + window[left_char] -= 1 + start += 1 + + max_len = end - start + 1 if end - start + 1 > max_len else max_len + + return max_len + + +if __name__ == "__main__": + s = Solution() + print(s.characterReplacement('ABAB', 2)) diff --git a/reverse-bits/chordpli.py b/reverse-bits/chordpli.py new file mode 100644 index 000000000..8b868a878 --- /dev/null +++ b/reverse-bits/chordpli.py @@ -0,0 +1,17 @@ +class Solution: + def reverseBits(self, n: int) -> int: + return int(format(n, "032b")[::-1], 2) + + def reverse_bits(self, n: int): + result = 0 + for i in range(32): + lsb = n & 1 + result <<= 1 + result |= lsb + n >>= 1 + return result + + +if __name__ == "__main__": + s = Solution() + print(s.reverse_bits(10))