美文网首页
有效的字母异位词

有效的字母异位词

作者: 422ccfa02512 | 来源:发表于2020-12-19 23:58 被阅读0次

题目描述

难度级别:简单

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。

示例 1:

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

示例 2:

输入: s = "rat", t = "car"
输出: false
说明:
你可以假设字符串只包含小写字母。

进阶:

如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?

解题思路

排序

通过将2个字符串转为数组排序后,转为字符串进行比较

const isAnagram = (s,t) => 
    s.length === t.length && [...s].sort().join("") === [...t].sort().join("")

哈希表

通过数组创建哈希表,初始化长度为26,每个元素值为0。由于存在unicode的字符,使用String.prototype.codePointAt解析。首先遍历s字符串,对遍历到的字符在hashMap中进行+1,之后遍历t,对遍历到的元素进行-1,若遍历到的元素在hashMap中值小于0则输出false。

const isAnagram = (s,t) => {
    if (s.length !== t.length) return false

    const hashMap = new Array(26).fill(0)

    for (let i = 0; i < s.length; i++)
        hashMap[s.codePointAt(i) - 'a'.codePointAt(0)]++

    for (let i = 0; i < t.length; ++i) {
        hashMap[t.codePointAt(i) - 'a'.codePointAt(0)]--
        if (hashMap[t.codePointAt(i) - 'a'.codePointAt(0)] < 0)
            return false;
    }

    return true;
}

题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-anagram/

相关文章

  • leecode刷题(14)-- 有效的字母异位词

    leecode刷题(14)-- 有效的字母异位词 有效的字母异位词 描述: 给定两个字符串 s 和 t ,编写一个...

  • 有效的字母异位词

    给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。 示例 1: 示例 2: 说明...

  • 有效的字母异位词

    给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = "ana...

  • 有效的字母异位词

    给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。 示例 1: 输入: s = ...

  • 有效的字母异位词

    有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。 示例 1:...

  • 有效的字母异位词

    给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 示例 1: 示例 2: 说明:你...

  • 有效的字母异位词

    题目描述 难度级别:简单 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 示例 ...

  • 算法时间 III

    1. 有效的字母异位词[https://leetcode.cn/problems/valid-anagram/] ...

  • 242. 有效的字母异位词

    242. 有效的字母异位词[https://leetcode.cn/problems/valid-anagram/...

  • LeetCode刷题分类之字符串 242

    242. 有效的字母异位词 题目 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。...

网友评论

      本文标题:有效的字母异位词

      本文链接:https://www.haomeiwen.com/subject/zcjhnktx.html