力扣(leetcode)-有效的字母异位词-排序比较法(python)

解题思路

  1. 先比较俩字符串的长度是否一致
  2. 将字符串转为列表
  3. 将两个字符串用sort()排序
  4. 依次对比每个字母是否相等

本算法时间主导的步骤为排序sort()
所以本算法的运行时间数量级等于排序过程的时间数量级:O(nlogn)

参考:【北京大学】数据结构与算法Python版(完整版)2.3.1:https://www.bilibili.com/video/BV1VC4y1x7uv?p=10

代码

class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        if len(s) == len(t):
            alist1 = list(s)
            alist2 = list(t)
            alist1.sort()
            alist2.sort()
            pos = 0
            matches = True
            while pos < len(s) and matches:
                if alist1[pos] == alist2[pos]:
                    pos = pos + 1
                    matches = True
                else:
                    matches = False
            return matches
        else:
            return False
            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值