Rolling-Hash
LeetCode 1147: Longest Chunked Palindrome Decomposition
·2 mins
LeetCode
Hard
Dynamic-Programming
Greedy
Two-Pointers
Rolling-Hash
String
LeetCode 1147 note: build strings inward from both ends and cut a pair as soon as they match; cutting early is best, and any leftover middle counts as one chunk
LeetCode 1461: Check If a String Contains All Binary Codes of Size K
·2 mins
LeetCode
Medium
Hash-Table
String
Bit-Manipulation
Rolling-Hash
LeetCode 1461 note: put every length-k substring in a set and check that its size reaches 2^k; the last start is len(s) - k
LeetCode 2156: Find Substring With Given Hash Value
·3 mins
LeetCode
Hard
Sliding-Window
Rolling-Hash
String
LeetCode 2156 note: the first character has weight p^0, so sliding right to left needs only multiply by p, add the new character, and subtract the outgoing one times p^k; the modulus may not be prime, so no modular inverse