LeetCode242有效的字母异位词

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
示例 1:
输入: s = “anagram”, t = “nagaram”
输出: true
示例 2:
输入: s = “rat”, t = “car”
输出: false

思路:字母异位词:s中一个字母位置变化生成新的序列t ,两个序列中出现的字母是相同的,所以a-z字母的数目其实是不变的,只是出现的位置不同。
所以判断是不是异位词:
(1)长度是否相同:不相同:false ;相同:继续判断(2)
(2)a-z 的出现数目是否相同

python代码如下:

class Solution(object):
    def isAnagram(self, s, t):
        """
        :type s: str
        :type t: str
        :rtype: bool
        """
        ds = {}
        dt = {}    
        if len(s)!=len(t):
            return False
        else:
            for c in s:
                ds[c] = ds.get(c,0)+1
            for d in t:
                dt[d] = dt.get(d,0)+1
            if ds==dt:
                return True
            else:
                return False

使用字典存储字母出现的数目
python 字典(Dictionary) get() 函数返回指定键的值,如果值不在字典中返回默认值。
get()方法语法:
dict.get(key, default=None)
参数
key – 字典中要查找的键。
default – 如果指定键的值不存在时,返回该默认值。
返回值:返回指定键的值,如果值不在字典中返回默认值None。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值