↓快轉到主要內容

String

LeetCode 151: Reverse Words in a String
·1 分鐘
LeetCode Medium Two-Pointers String
LeetCode 151 解題筆記:split() 不帶參數會把連續空白當成一個分隔,也會去掉頭尾空白;反轉後用一個空白接起來
LeetCode 93: Restore IP Addresses
·1 分鐘
LeetCode Medium String Backtracking
LeetCode 93 解題筆記:切成剛好 4 段,每段長度 1 到 3、值在 0 到 255、除了 0 本身不能有前導零
LeetCode 647: Palindromic Substrings
·1 分鐘
LeetCode Medium Two-Pointers String Dynamic-Programming
LeetCode 647 解題筆記:中心擴展,每擴展成功一次就是一個回文子字串
LeetCode 131: Palindrome Partitioning
·1 分鐘
LeetCode Medium String Dynamic-Programming Backtracking
LeetCode 131 解題筆記:每一層從剩下字串的開頭切出一段回文,切的長度從 1 到整段都要試
LeetCode 208: Implement Trie (Prefix Tree)
·1 分鐘
LeetCode Medium Hash-Table String Design Trie
LeetCode 208 解題筆記:每個節點是 children 字典加一個 is_end 標記;insert、search、startsWith 都是沿著字元往下走
LeetCode 981: Time Based Key-Value Store
·2 分鐘
LeetCode Medium Hash-Table String Binary-Search Design
LeetCode 981 解題筆記:每個 key 存一個 (timestamp, value) 的 list,timestamp 是遞增的;get 時二分找最後一個 timestamp <= 查詢時間的
LeetCode 424: Longest Repeating Character Replacement
·1 分鐘
LeetCode Medium Hash-Table String Sliding-Window
LeetCode 424 解題筆記:可變長度滑動視窗,視窗長度減掉最多的字元次數就是要替換的數量,超過 k 就縮左邊
LeetCode 79: Word Search
·2 分鐘
LeetCode Medium Array String Backtracking Depth-First-Search
LeetCode 79 解題筆記:從每一格開始回溯,往四個方向比對下一個字元,走過的格子暫時標記,回溯時還原;先用字元次數剪枝
LeetCode 71: Simplify Path
·1 分鐘
LeetCode Medium String Stack
LeetCode 71 解題筆記:用 / 切開,空字串和 . 跳過,.. 就 pop(根目錄不能再往上),其他名稱 push,最後用 / 接起來
LeetCode 49: Group Anagrams
·1 分鐘
LeetCode Medium Array Hash-Table String Sorting
LeetCode 49 解題筆記:把每個字串排序後當成 key,同一個 key 的字串就是同一組 anagram
LeetCode 43: Multiply Strings
·1 分鐘
LeetCode Medium Math String Simulation
LeetCode 43 解題筆記:num1[i] × num2[j] 的結果落在第 i + j + 1 位,用一個長度 n + m 的陣列累加後再統一進位
LeetCode 5: Longest Palindromic Substring
·1 分鐘
LeetCode Medium Two-Pointers String Dynamic-Programming Manacher
LeetCode 5 解題筆記:中心擴展,每個位置當奇數和偶數長度的中心往外擴;區間 DP 的話 i 要從大到小