python 学习记录

题目:回文对

给定一组 互不相同 的单词, 找出所有 不同 的索引对 (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

这是我的代码比较暴力  当然也超时了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值