重启人生1.0-day6:242.有效的字母异位词 ;349. 两个数组的交集 ;202. 快乐数;1. 两数之和

重启人生1.0-day6: 242.有效的字母异位词 ;349. 两个数组的交集 ;202. 快乐数;1. 两数之和

242.有效的字母异位词

    def isAnagram(self, s: str, t: str) -> bool:
        nums = [0] * 26 # 定义1个数组,对应26个英文字母下标
        for i in s:
            nums[ord(i) - ord("a")] += 1 # ord(i) - ord("a")找到字母对应的下标
        for i in t:
            nums[ord(i) - ord("a")] -= 1
        for x in nums:
            if x != 0:
                return False
        return True
  1. 两个数组的交集
    def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
        return list(set(nums1) & set(nums2))
  1. 快乐数
    def isHappy(self, n: int) -> bool:
        set_nums = set()
        while n != 1:
            if Solution().squSum(n) in set_nums:
                return False
            else:
                set_nums.add(Solution().squSum(n))
                n = Solution().squSum(n)
                Solution().squSum(n)
        return True
    
    def squSum(self, n) -> int:
        sum = 0
        while n:          
            n, r = divmod(n, 10)
            sum += r**2
        return sum
  1. 两数之和
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        dict_num = {}
        for i, num in enumerate(nums):
            value = target - num
            if value in dict_num:
                return [i, dict_num.get(value)]
            dict_num[num] = i
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值