🚅【leetcode】242. 有效的字母异位词
![在这里插入图片描述](https://img-blog.csdnimg.cn/7bd3cd5ef8154d7da99e5cd9badf12f4.png#pic_center)
🚀题目
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
示例 1:
输入: s = “anagram”, t = “nagaram”
输出: true
示例 2:
输入: s = “rat”, t = “car”
输出: false
提示:
1 <= s.length, t.length <= 5 * 104
s 和 t 仅包含小写字母
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-anagram
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
💥leetcode代码模板
/**
* @param {string} s
* @param {string} t
* @return {boolean}
*/
var isAnagram = function(s, t) {
};
🚀思路
直接统计两个字符串的字符出现个数,判断是否相等即可。
因为两个字符串仅包含小写字母,故我们可以使用一个长度为26的数组来统计字符出现个数,下标0位置对应字母'a'
。数组的每一项初始化为0.
遍历两个字符串,字符串s中的字母对应数量加一,字符串t中的字母对应数量减一,当遍历完成后,遍历一下哈希数组,看看是否全为0,如果全为0返回true,否则返回false
💻代码
var isAnagram = function(s, t) {
if(s.length !== t.length) return false // 长度不相等,字符不可能出现次数相同
let hashTable = (new Array(26)).fill(0)
let base = 'a'.charCodeAt()
for(let i = 0 ; i < s.length ; i++){
hashTable[s[i].charCodeAt() - base]++
hashTable[t[i].charCodeAt() - base]--
}
return hashTable.every(item => item === 0)
};
✨ 我 是 c o n e r , 请 别 关 注 我 的 专 栏 , 本 系 列 文 章 为 个 人 刷 题 记 录 ( 偷 偷 自 己 卷 🤤 ) : \textcolor{green}{我是coner,请别关注我的专栏,本系列文章为个人刷题记录(偷偷自己卷🤤):} 我是coner,请别关注我的专栏,本系列文章为个人刷题记录(偷偷自己卷🤤):leetcode题解js
✨ 每 天 早 上 更 新 3 道 l e e t c o d e 题 目 的 j s 题 解 🚀 🚀 🚀 \textcolor{green}{每天早上更新3道leetcode题目的js题解🚀🚀🚀} 每天早上更新3道leetcode题目的js题解🚀🚀🚀