首页 > 编程语言 >代码随想训练营第五天(Python)| 242.有效的字母异位词、349. 两个数组的交集、第202题. 快乐数、 1. 两数之和

代码随想训练营第五天(Python)| 242.有效的字母异位词、349. 两个数组的交集、第202题. 快乐数、 1. 两数之和

时间:2023-10-16 23:56:48浏览次数:49  
标签:202 return Python res List int set dict 两数

242.有效的字母异位词

1、数组法

这个思路贼 6 ,在这个题的效率也高

class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        # 全部转为 asii 码 如果是互为异为词,则最后的 -+ 后的结果为 0
        record = [0] * 26  # 范围是 26。一维
        for i in s:
            record[ord(i)-ord("a")] += 1
        for j in t:
            record[ord(j)-ord("a")] -= 1
        for i in range(26):
            if record[i] != 0:
                return False
        return True
2、字典法
class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        s_dict = {}
        for i in s:
            s_dict[i] = s_dict.get(i, 0) + 1
        for j in t:
            s_dict[j] = s_dict.get(j, 0) - 1
        for j in s_dict.values():
            if j != 0:
                return False
        return True

349. 两个数组的交集

1、集合

list 很大时适合用这个或者哈希表,不能使用下面数组方法

class Solution:
    def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
        res = []
        a_set = set()
        for i in nums1:
            a_set.add(i)
        for j in nums2:
            if j in a_set:
                a_set.remove(j)
                res.append(j)
        return res
2、数组

这个思路很不错

class Solution:
    def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
        count1 = [0] * 1001  # 力扣范围为 1000,这里可看成二维数组
        count2 = [0] * 1001
        res = []
        for i in range(len(nums1)):
            count1[nums1[i]] += 1
        for j in range(len(nums2)):
            count2[nums2[j]] += 1
        for k in range(1001):
            if count1[k] * count2[k] > 0:
                res.append(k)
        return res

三、第202题. 快乐数

关键点:出现同样要计算的数字时,就会陷入无限循环,就不是快乐数了

class Solution:
    def isHappy(self, n: int) -> bool:
        seen = set()
        while n != 1:
            n_nums = [int(i)**2 for i in str(n)]
            n = sum(n_nums)
            if n in seen:
                return False
            seen.add(n)
        return True

四、1.两数之和

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        a_dict = {}
        for index, val in enumerate(nums):
            target_val = target - val
            if target_val in a_dict:
                return [index, a_dict.get(target_val)]
            a_dict[val] = index
        return []

标签:202,return,Python,res,List,int,set,dict,两数
From: https://www.cnblogs.com/yixff/p/17768721.html

相关文章

  • 20231026
    (1)通过查阅资料,写出一个或多个MapReduce的具体应用,并谈谈自己对MapReduce的认识。(满分10分)(2)词频统计任务编程实践,任务要求:在Linux系统本地创建两个文件,即文件wordfile1.txt和wordfile2.txt,文件wordfile1.txt的内容格式如下,需要将zhangsan换成自己名字的英文全拼:zhangsanlovesSp......
  • 20231016
    早上上了工程实训课,玩了高铁和火车模拟器和沙盘下午Java课,发现布置的作业是我几周前自己试着做过的最近在看代码大全,学到了自定义数据结构的一些妙用,组织顺序结构的代码,条件和循环中常见的错误排查以及避免,好多好多。......
  • ipykernel ipython
    ipykernelipykernel是一个用于在JupyterNotebook中运行Python代码的包,它可以将Python代码转化为可以在Python内核上运行的格式。 ipython IPython是什么? https://blog.csdn.net/jarodyv/article/details/128145753Python最有用的功能之一就是它的交互式解释器。交互......
  • 2023年香山杯初赛wp
    前言​ 以H2SHTEAM的身份打了这次比赛,感谢队友,最终进学生组前40了(下图是总榜的排名截图)​ 希望能去次广东WEBPHP_unserialize_pro查看源码,很明显的php反序列化payload生成如下,然后data传参就出flag<?phpclassWelcome{public$name;public$arg='welcome';......
  • 2023.10.16——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习;我了解到的知识点:1.DIV+CSS明日计划:学习......
  • [刷题笔记] CSP-J 2022 T4 上升点列
    Description在一个二维平面内,给定\(n\)个整数点\((x_i,y_i)\),此外你还可以自由添加\(k\)个整数点。你在自由添加\(k\)个点后,还需要从\(n+k\)个点中选出若干个整数点并组成一个序列,使得序列中任意相邻两点间的欧几里得距离恰好为\(1\)而且横坐标、纵坐标值均单调不......
  • 题解 P7468【[NOI Online 2021 提高组] 愤怒的小 N】
    题解P7468【[NOIOnline2021提高组]愤怒的小N】problem首先是有一个字符串\(S=\texttt{"0"}\),做无限次“将\(S\)的每一位取反接在\(S\)后面”的操作,形如\(S=0110100110010110\cdots\)。另外给一个\(k-1\)次多项式\(f\),求\(\sum_{i=0}^{n-1}S_if(i).\)\(n\leq......
  • 代码随想录第六天 | 哈希表、242.有效的字母异位词 、349. 两个数组的交集 、202. 快
    哈希表什么是哈希表哈希表是根据关键码的值而直接进行访问的数据结构。简单的例子:数组什么时候想到用哈希法当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。哈希碰撞元素通过哈希函数被映射到同一个索引下标位置解决方法:拉链法从发生冲......
  • CSP-J/S 2023 游记
    2023-10-16TBXCRound7-J打了场模拟赛,以为自己AK了,结果赛中发现自己是消愁,调完代码后又以为自己AK了,赛后再次发现自己是消愁。半年没写bfs,只会SPFA了/cf总结:数组空间不要开小!......
  • 生活随笔-20231016
        早起,叫醒小非,为他制作了”可颂滑蛋香肠沙拉“,自己准备的可颂未加香肠,非常美味,我俩都吃的津津有味。        小非上学后,按计划完成书本第三章思维导图第一节。    中午继续观看【大明王朝1566】-20~21集晚上下班到家,按计划带小齐来到楼下,让他练......