LeetCode 《1.两数之和》+《125.验证回文串》

 

题目1:

思路:

① 考虑 target-num1=num2 的形式来进行判断

② 用字典来存储nums,k存储num,v存储num的index

③ 使用字典时,并非全部存储完再进行①的判断,而是存一个进行一次判断,这样时间复杂度为N

③ 代码中要先进行判断,再进行字典存num:

     如果先存值,那么 if target-num1 in d 进行判断时,num1已经存储到了 d 中,若target为4,num1为2,那么就发生了错误。因此应该判断(target-即将存储进字典的num1)的值即num2,是否已经存在于字典中。在的话,直接返回结果;如果不在,OK将num1及其index存储到字典里

④ 技巧是用到python的 enumerate(List) 枚举函数,for i,num in enumerate(list1) ,可以同时遍历list的值、index

解:

class Solution(object):
    def twoSum(self, nums, target):
        d={}
        for i,num in enumerate(nums):
            if target-num in d:
                return [i,d[target-num]]
            d[num]=i

 

题目125

思路:

 

① 将给定的字符串中除了字母数字以外的字符去掉,然后可以用''空字符将过滤后的一段一段的字符串连接起来

② 由于忽略大小写,所以将字符串再统一转换为小写

③ 上面的得到的字符串再与自己的逆序进行比较即可:s==s[::-1]

 

 

解:

class Solution:
    def isPalindrome(self, s: str) -> bool:
        s = ''.join(filter(str.isalnum,s)).lower()
        return s==s[::-1]

分析:

① str.join() 将join内的元素用str来进行连接,''为空字符

② filter(xxx,yyy)  xxx是判断函数,yyy是xxx的判断对象,函数判断结果为TRUE的话则以List方式返回yyy

③ str.lower() 小写化, str.isalnum 判断str是否为数字字母的组合,isalnum后面有无括号随缘吧。

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值