LeetCode 筆記 - 1930. Unique Length-3 Palindromic Subsequences
本文分享了 LeetCode 第 1930 題的解題心得。雖然題目涉及子序列與迴文,看似複雜,但透過分析長度為 3 的迴文特性,我們可以簡化問題:只需找出每個字元的第一個與最後一個出現位置,並統計其中間不重複的字元數量。這是一種既直覺又高效的實作方式。
題目在此 1930. Unique Length-3 Palindromic Subsequences
給定一個字串,請問裡面有幾個長度為 3 的迴文子序列?
解題思維
名詞解說:
這題很弔詭,看到 Subsequences 就會想到 DP,看到迴文就會想到 Manacher’s Algorithm,但是這題其實不用這麼複雜。
先分析一下題目,長度為 3 的迴文子序列,也就是說只要前後相同,中間就可以是任意字元。
題目也說了,相同組合的算一個,所以我們只要找到每個字元的第一個出現位置與最後一個出現位置,就可以知道這個字元可以組成幾個迴文子序列。
所以這題的關鍵找到每個字元的第一個出現位置與最後一個出現位置就可以了,中間就用 set 來處理重複的字元。
程式碼
1 | class Solution: |
