《python算法与数据结构2000讲》0336. 回文对
- 标签:字典树、数组、哈希表、字符串
- 难度:困难
题目大意
给定一组互不相同的单词列表 words
。
要求:找出所有不同的索引对 (i, j)
,使得列表中的两个单词 words[i] + words[j]
,可拼接成回文串。
解题思路
如果字符串 words[i] + words[j]
能构成一个回文串,把 words[i]
分成 words_left[i]
和 words_right[i]
两部分。即 words[i] + words[j] = words_left[i] + words_right[i] + words[j]
。则:
words_right[i]
本身是回文串,words_left[i]
和words[j]
互为逆序。
同理,如果 words[j] + word[i]
能构成一个回文串,把 w