题目:回文对
给定一组 互不相同 的单词, 找出所有 不同 的索引对 (i, j)
,使得列表中的两个单词, words[i] + words[j]
,可拼接成回文串。
理解:
(1)python的切片操作:
python的切片操作形式是 str[star:stop:setp](其中str是字符串比如str=['1','2'.....'9']),切片操作就是将str里的元素进行抽取,抽取的范围由star到stop(索引的是对应元素的下标).其中star和stop可以为负数就代表是反着抽取,比如[-4;-2]就代表抽取6,7两个元素(倒数第4个元素开始----倒数第2个结束(不包含)).
下面是step这个参数是代表索引的步长,可以为负数(就代表从数组的后面向前索引)
思路:
对于改题目就可以通过切片的方法来使字符串倒转.将倒转后和原字符串相加后对比找出回文对
class Solution(object):
def palindromePairs(self, words):
a_list=[]
for sz_1 in words:
for sz_2 in words:
sz_num=(sz_1+sz_2)[::-1]
if sz_num==sz_1+sz_2 and words.index(sz_1) != words.index(sz_2):
a = [words.index(sz_1),words.index(sz_2)]
a_list.append(a)
return a_list
这是我的代码比较暴力 当然也超时了