Leetcode 查找表

在这里插入图片描述

class Solution:
    def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
        # 两个数组的交集
        return set(nums1) & set(nums2)

在这里插入图片描述

class Solution:
    def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]:
        from collections import Counter
        dic1=dict(Counter(nums1))
        dic2=dict(Counter(nums2))
        res=[]
        for key,value in dic1.items():
            if key in dic2.keys():
                min_value=min(value,dic2[key])
                for i in range(min_value):
                    res.append(key)
        return res

还可以先建立一个字典,然后遍历另一个数组,判定数组中的值是否在字典中,如果在的话,那么就减一。
思考题需要再看看。

在这里插入图片描述

class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        # 给定两个字符串s和t,编写一个函数判定t是否是s的字母异位词
        from collections import Counter
        return dict(Counter(s))==dict(Counter(t))

思考题不懂。
在这里插入图片描述

class Solution:
    def isHappy(self, n: int) -> bool:
        # 判定一个数字是否是快乐数
        s=set()
        while n!=1:
            sum_num=0
            for num in list(str(n)):
                sum_num+=int(num)**2
            if sum_num in s:
                return False
            else:
                s.add(sum_num)
                n=sum_num
        return True

这题需要注意的就是判定这个sum是否出现过,如果出现过,那么就证明是False。原理我没太想明白。
取一个数字的不同的位数分别计算的一般方法:
n%10,取出最后一位
n//10,删除最后一位

在这里插入图片描述

class Solution:
    def isIsomorphic(self, s: str, t: str) -> bool:
        return list(map(s.index,s))==list(map(t.index,t))

map解法

在这里插入图片描述

class Solution:
    def wordPattern(self, pattern: str, str: str) -> bool:
        # 给定规律pattern和字符串str,判断str是否遵循相同的规律
        str = str.split()
        print(list(map(pattern.index,pattern)))
        print(list(map(str.index,str)))
        return list(map(pattern.index,pattern)) == list(map(str.index,str))

同样是map解法

在这里插入图片描述

class Solution:
    def frequencySort(self, s: str) -> str:
        # 给定一个字符串,将字符按照出现频率降序排列
        from collections import Counter
        dic=dict(Counter(s))
        dic=dict(sorted(dic.items(), key=lambda x: x[1], reverse=True))
        print(dic)
        res=''
        for key,value in dic.items():
            for i in range(value):
                res+=str(key)
        return res
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值