LeetCode 242. 有效的字母异位词

上一篇博客:LeetCode 2923. 找到冠军 I——更好的解法

 写在前面:大家好!我是晴空๓。如果博客中有不足或者的错误的地方欢迎在评论区或者私信我指正,感谢大家的不吝赐教。我的唯一博客更新地址是:https://ac-fun.blog.csdn.net/。非常感谢大家的支持。一起加油,冲鸭!
用知识改变命运,用知识成就未来!加油 (ง •̀o•́)ง (ง •̀o•́)ง

原题链接:242. 有效的字母异位词

题目信息

题目描述

 给定两个字符串 st ,编写一个函数来判断 t 是否是 s
字母异位词(字母异位词是通过重新排列不同单词或短语的字母而形成的单词或短语,并使用所有原字母一次)

示例 1

输入: s = “anagram”, t = “nagaram”
输出: true

示例 2

输入: s = “rat”, t = “car”
输出: false

提示

1 ≤ s . l e n g t h , t . l e n g t h ≤ 5 ∗ 1 0 4 1 \le s.length, t.length \le 5 * 10^4 1s.length,t.length5104
s 和 t 仅包含小写字母

题解

解题思路1

 先判断两个字符串是否长度相等,如果长度不等那么一定不是 字母异位词。然后使用 HashMap 分别存储两个字符串中字母的出现次数,然后在遍历 HashMap 进行比较。这里要注意的一点就是不要直接进行比较,需要先将得到的值由 Integer 转换为 int,因为 Java 基本数据类型的包装类型的大部分都用到了缓存机制来提升性能。对于 Byte,Short,Integer,Long4 种包装类默认创建了数值 [-128,127] 的相应类型的缓存数据。

 当我们使用 == 比较两个引用类型的对象时比较的是两个对象的内存地址,并不是实际的数值。因此如果直接使用 == 比较两个 引用类型对象 的值是否相等,对于 [-128,127] 范围内的两个 Integer对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晴空๓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值