当前位置: 首页 > news >正文

python每日一题练习 有效的字母异位词 非常简单

给定两个字符串 s 和 t ,编写一个函数来判断它们是不是一组变位词(字母异位词)。

注意:若 s 和 t 中每个字符出现的次数都相同且字符顺序不完全相同,则称 s 和 t 互为变位词(字母异位词)。

class Solution(object):

    def isAnagram(self, s, t):

        if sorted(s)==sorted(t) and s!=t:

            return True

        else:

            return False

非常简单 那我们想想优化的思路是什么呢? 如果长度不相等不行 完全相等也不行 把这些条件写在前面 就能少很多排序了 

class Solution(object):

    def isAnagram(self, s, t):

        if len(s)!=len(t):

            return False

        if s==t:

            return False

        return sorted(s)==sorted(t)

然后其实排序是比使用哈希表耗费时间的 我们不如使用上个帖子的哈希表的方法来写一写这个题目

class Solution(object):

    def isAnagram(self, s, t):

        if len(s)!=len(t):

            return False

        if s==t:

            return False

        counter_t=[0]*26

        counter_s=[0]*26

        for i in range(len(t)):

            counter_t[ord(t[i])-ord('a')]+=1

        for i in range(len(s)):

            counter_s[ord(s[i])-ord('a')]+=1

        if counter_s==counter_t:

            return True

        return False

使用这个方法就击败百分之74 那么还有优化的思路吗?我看到了一个是这样的 就是先将其中一个的哈希表写出 然后 如果中途出现小于0的就直接return false

 注意啊 因为两个字符串的长度是相等的 那么一旦出现小于 0的就证明肯定不是相等的 直接return False就行 这也是一个很好的思路 

如果这篇帖子对你来说有用 欢迎点赞!

http://www.dtcms.com/a/326488.html

相关文章:

  • Linux软件编程--IO
  • Linux 软件编程:IO——标准IO
  • 《录井管理与工程》书籍第一章要点及相应思考
  • 工业数采引擎-通信协议(Modbus/DTU/自定义协议)
  • FFmepg源码系列-avformat_open_input()
  • python之uv使用
  • [动态规划]最长公共子序列(LCS)
  • Nacos添加权限
  • uart通信中出现乱码,可能的原因是什么 ?
  • Linux软件编程:标准IO(ASCII文件)
  • Discuz论坛和java应用的架构部署
  • 视频剪辑的工作流程
  • 笔试——Day35
  • 用 Flink SQL 和 Paimon 打造实时数仓:深度解析与实践指南
  • GitHub的简单使用方法----(1)
  • 论文阅读 arxiv 2024 MemGPT: Towards LLMs as Operating Systems
  • 平衡二叉树(AVL)解析与实现
  • python每日一题 1的数量 非常简单
  • 松灵机器人 scout ros2 galactic 驱动 安装,并且跑巡线算法
  • 深入剖析 C++ STL 中的 std::list 容器
  • 一篇文章解决Unity没有添加模块选项的问题
  • Linux系统编程 | 线程池
  • Redis7 GEO功能介绍与电商场景案例解析
  • Static CXL Switch:静态CXL交换机相关内容
  • leecode875 爱吃香蕉的珂珂
  • 【Unity】打包学习笔记
  • pip 和 conda,到底用哪个安装?
  • 【已解决】【obsidian插件开发】svg图标路径不正确
  • 第16届蓝桥杯Python青少组中/高级组选拔赛(STEMA)2025年1月12日真题
  • 机器翻译:一文掌握序列到序列(Seq2Seq)模型(包括手写Seq2Seq模型)