zoukankan      html  css  js  c++  java
  • LeetCode 第 242 题:给定两个字符串 s 和 t,编写一个函数来判断 t 是否是 s 的字母异位词

    示例 1

    输入: s = "anagram", t = "nagaram"

    输出: true

    示例 2

    输入: s = "rat", t = "car"

    输出: false

    一个重要的前提“假设两个字符串只包含小写字母”,小写字母一共也就 26 个,因此:

    • 可以利用两个长度都为 26 的字符数组来统计每个字符串中小写字母出现的次数,然后再对比是否相等;
    • 可以只利用一个长度为 26 的字符数组,将出现在字符串 s 里的字符个数加 1,而出现在字符串 t 里的字符个数减 1,最后判断每个小写字母的个数是否都为 0按上述操作,可得出结论:s 和 t 互为字母异位词。
    • 或 建立两个字典key为字符,value为字符出现次数,最后判断两个字符是否相等

     

    class Solution:
        def isAnagram(self, s: str, t: str) -> bool:
            dic1, dic2 = {}, {}
            for item in s:
                dic1[item] = dic1.get(item, 0) + 1
            for item in t:
                dic2[item] = dic2.get(item, 0) + 1
            return dic1 == dic2
    
            # return sorted(s) == sorted(t) 或
    
    
    solution = Solution()
    print(solution.isAnagram(s="anagram", t="nagaram"))  # True
  • 相关阅读:
    作用域面试题
    js··BOM 浏览器对象模型
    js···DOM2动态创建节点
    js ·节点的知识点
    js·逻辑运算
    js···元素的属性
    什么是函数封装。
    hive 历史拉链表的处理
    [转]实现Hive数据同步更新的shell脚本
    python 3 过滤股票
  • 原文地址:https://www.cnblogs.com/zhaoyingjie/p/13996849.html
Copyright © 2011-2022 走看看