String
LeetCode 3325: Count Substrings With K-Frequency Characters I
·1 分鐘
LeetCode
Medium
Sliding-Window
Hash-Table
String
LeetCode 3325 解題筆記:「至少一個字元出現 k 次」的計數視窗;剛加入的字元湊滿 k 次就一直縮,縮到它變成 k - 1 次為止
LeetCode 1358: Number of Substrings Containing All Three Characters
·1 分鐘
LeetCode
Medium
Sliding-Window
Hash-Table
String
LeetCode 1358 解題筆記:「至少各一個 a、b、c」的計數視窗:三種都有時一直縮左邊,count += left
LeetCode 3816: Lexicographically Smallest String After Deleting Duplicate Characters
·1 分鐘
LeetCode
Hard
Stack
Monotonic-Stack
Greedy
String
LeetCode 3816 解題筆記:單調棧,頂端比較大而且還有別的副本就刪;最後把尾巴重複的也刪掉,因為前綴一定比較小
LeetCode 3813: Vowel-Consonant Score
·1 分鐘
LeetCode
Easy
String
Simulation
LeetCode 3813 解題筆記:只數字母,分成母音和子音;子音是 0 時分數是 0,否則用整數除法
LeetCode 3258: Count Substrings That Satisfy K-Constraint I
·1 分鐘
LeetCode
Easy
Sliding-Window
String
LeetCode 3258 解題筆記:0 的個數 <= k 或 1 的個數 <= k;兩個都超過才不合法,縮左邊後以 right 結尾的合法子字串有 right - left + 1 個
LeetCode 2904: Shortest and Lexicographically Smallest Beautiful String
·1 分鐘
LeetCode
Medium
Sliding-Window
String
LeetCode 2904 解題筆記:視窗裡剛好 k 個 1 時,把左邊的 0 也縮掉,得到以 right 結尾最短的美麗子字串;先比長度再比字典序
LeetCode 1234: Replace the Substring for Balanced String
·1 分鐘
LeetCode
Medium
Sliding-Window
String
LeetCode 1234 解題筆記:替換一段之後,視窗外的每個字元都不能超過 n / 4;用「求最短」的滑動視窗維護視窗外的數量
LeetCode 395: Longest Substring with At Least K Repeating Characters
·2 分鐘
LeetCode
Medium
Sliding-Window
Divide-and-Conquer
Hash-Table
String
LeetCode 395 解題筆記:「每個字元至少 k 次」不單調,不能直接滑動;分治法用出現不到 k 次的字元切開,或枚舉視窗裡有幾種字元,固定種類數後就能滑動
LeetCode 1763: Longest Nice Substring
·1 分鐘
LeetCode
Easy
Sliding-Window
Divide-and-Conquer
Hash-Table
String
Bit-Manipulation
LeetCode 1763 解題筆記:沒有大小寫配對的字元一定不在答案裡,用它切開字串遞迴;長度相同時取左邊的
LeetCode 2781: Length of the Longest Valid Substring
·2 分鐘
LeetCode
Hard
Sliding-Window
Hash-Table
String
Trie
LeetCode 2781 解題筆記:禁字最長只有 10,每個右端只檢查最後 10 個字元組成的後綴;找到禁字就把左端推到它後面,要找最短的那個(最靠右的起點)
LeetCode 3805: Count Caesar Cipher Pairs
·1 分鐘
LeetCode
Medium
Math
Hash-Table
String
Counting
LeetCode 3805 解題筆記:把每個字串整串平移到第一個字母是 a,凱薩等價的字串會變成一樣;再數每種正規化結果的配對數
LeetCode 3803: Count Residue Prefixes
·1 分鐘
LeetCode
Easy
Hash-Table
String
LeetCode 3803 解題筆記:邊掃邊把字元加進集合,前綴的不同字元數等於長度 % 3 就算一個