推 PogChampLUL: 大師 別捲了 01/04 20:04
看了一下大家好像差不多
不過後面算中間字母數的地方 原本想要用26*n的perfix cnt arr來找
想了想挺白吃的
還是先這樣就好
def countPalindromicSubsequence(self, s: str) -> int:
n = len(s)
l_find = [-1 for _ in range(26)]
r_find = [-1 for _ in range(26)]
for i in range(n):
if l_find[ord(s[i])-ord('a')] == -1:
l_find[ord(s[i])-ord('a')] = i
for i in range(n-1, -1, -1):
if r_find[ord(s[i])-ord('a')] == -1:
r_find[ord(s[i])-ord('a')] = i
ans = 0
for i in range(26):
if l_find[i]+1<n and r_find[i] != -1:
ans += len(set(s[l_find[i]+1:r_find[i]]))
return ans
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.228.146.144 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1735992141.A.331.html