字典樹 336 回文對 PYTHON

2021-10-02 22:09:55 字數 1367 閱讀 9140

"""# 本身就是回文串單詞

palidstr =

# 翻轉單詞記錄位置

rev_words =

# 結果

res =

for idx, word in

enumerate

(words)

: rev_words[word[::

-1]]

= idx #利用列表推導式的形式進行逆置,同時利用賦值的方法規避掉「」的元素

# 為了防止陣列裡有空字串("")

if word == word[::

-1]:

print

(rev_words)

for idx, word in

enumerate

(words)

:if word:

for i in

range

(len

(word)):

#0--n-1

left, right = word[

:i], word[i:

]# print(left,right)

# 是否存在在單詞左邊加 使得成為回文串

if left == left[::

-1]and right in rev_words and idx != rev_words[right]

:#當前單詞左邊是回文,右側在翻轉單詞中,且當前單詞不是查詢出來的右側翻轉單詞

print

(left,right,idx,rev_words[right]

)[rev_words[right]

, idx]

)# 同理

if right == right[::

-1]and left in rev_words and idx != rev_words[left]

:[idx, rev_words[left]])

else

:# 對於空字串

for loc in palidstr:

if loc != idx:

[idx, loc]

)#空字串可以與任意乙個回文搭配

return res

leetcode336 回文對(字典樹)

給定一組 互不相同 的單詞,找出所有不同 的索引對 i,j 使得列表中的兩個單詞,words i words j 可拼接成回文串。示例 1 輸入 abcd dcba lls s sssll 輸出 0,1 1,0 3,2 2,4 解釋 可拼接成的回文串為 dcbaabcd abcddcba slls ...

每日一題 leetcode 336 回文對

回文對 難度困難123 給定一組 互不相同 的單詞,找出所有不同 的索引對 i,j 使得列表中的兩個單詞,words i words j 可拼接成回文串。示例 1 輸入 abcd dcba lls s sssll 輸出 0,1 1,0 3,2 2,4 解釋 可拼接成的回文串為 dcbaabcd ab...

HYSBZ 3676 回文串 回文樹

time limit 20 sec memory limit 128 mb submit 1680 solved 707 submit status discuss 考慮乙個只包含小寫拉丁字母的字串s。我們定義s的乙個子串t的 出 現值 為t在s中的出現次數乘以t的長度。請你求出s的所有回文子串中的...