↓快轉到主要內容

String

LeetCode 763: Partition Labels
·1 分鐘
LeetCode Medium Hash-Table Two-Pointers String Greedy
LeetCode 763 解題筆記:先記每個字母最後出現的位置,掃描時把這段的結尾延伸到最遠,走到結尾就切
LeetCode 32: Longest Valid Parentheses
·1 分鐘
LeetCode Hard String Dynamic-Programming Stack Bracket-Sequences
LeetCode 32 解題筆記:堆疊存索引,底部放目前這段合法括號開始前的位置,長度是 i - stack[-1]
LeetCode 4097: Minimum Value of Merged Integers
·1 分鐘
LeetCode Easy Array String Simulation
LeetCode 4097 解題筆記:只合併 (0,1)、(2,3)… 這些固定的配對,步長是 2,不是每對相鄰元素
LeetCode 449: Serialize and Deserialize BST
·1 分鐘
LeetCode Medium String Tree Depth-First-Search Breadth-First-Search Design Binary-Search-Tree Binary-Tree
LeetCode 449 解題筆記:BST 只要存前序,不用空節點標記;反序列化帶著上下界遞迴,O(n)
LeetCode 331: Verify Preorder Serialization of a Binary Tree
·1 分鐘
LeetCode Medium String Stack Tree Binary-Tree
LeetCode 331 解題筆記:數空位:一開始 1 個,每個節點用掉 1 個,非空節點再多出 2 個;中途不能變負,最後要剛好 0
LeetCode 297: Serialize and Deserialize Binary Tree
·1 分鐘
LeetCode Hard String Tree Depth-First-Search Breadth-First-Search Design Binary-Tree
LeetCode 297 解題筆記:前序遍歷加上空節點標記就能唯一還原樹;反序列化用迭代器依序取值
String 字串處理
·4 分鐘
演算法 String Simulation Hash-Table
用 list 組字串的模擬、在每個位置嘗試比對的解析、長度 k 的所有子字串、字元分類計數、固定起點的平衡子字串判斷,以及切成單字再處理
Two Pointers 雙指針
·5 分鐘
演算法 Two-Pointers String Sorting
對撞指針、兩個序列各一個指針、跳過空白比對位置、排序後數 pair,以及原地覆寫的寫入指針
Trie 字典樹
·2 分鐘
演算法 Trie String Prefix Bit-Manipulation
用巢狀 dict 建 Trie、在節點上記數量、搭配 DFS 搜尋,以及什麼時候其實不需要 Trie
LeetCode 1842: Next Palindrome Using Same Digits
·2 分鐘
LeetCode Hard Two-Pointers String
LeetCode 1842 解題筆記:回文由左半邊決定,中間的數字固定不動;對左半邊做 next permutation,再鏡像回去
String DP
·2 分鐘
演算法 Dynamic-Programming String Lcs Palindrome
Prefix table、edit operations、subsequence 與 interval palindrome DP
LeetCode 4019: Merge Close Characters II
·1 分鐘
LeetCode Medium Hash-Table String
LeetCode 4019 解題筆記:留下來的字不會再變,記每種字元在結果裡最後的位置;新字元跟它的距離 <= k 就被合併掉