leetcode算法242.有效的字母异位词

Posted 学无止境小奇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode算法242.有效的字母异位词相关的知识,希望对你有一定的参考价值。

👏👏👏

哈喽!大家好,我是【学无止境小奇】,一位热爱分享各种技术的博主!😍😍😍

⭐【学无止境小奇】的创作宗旨:每一条命令都亲自执行过,每一行代码都实际运行过,每一种方法都真实实践过,每一篇文章都良心制作过。✊✊✊

⭐【学无止境小奇】的博客中所有涉及命令、代码的地方,除了提供图片供大家参考,另外会在图片下方提供一份纯文本格式的命令或者代码方便大家粘贴复制直接执行命令或者运行代码。🤝🤝🤝

⭐如果你对技术有着浓厚的兴趣,欢迎关注【学无止境小奇】,欢迎大家和我一起交流。😘😘😘

❤️❤️❤️感谢各位朋友接下来的阅读❤️❤️❤️

文章目录

一、leetcode算法

1、有效的字母异位词

1.1、题目

给定两个字符串 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 仅包含小写字母

1.2、思路

思路一:本题因为是所有的小写字母一共只有26个,所以我们维护一个26长度的数组即可,通过遍历第一个字符串然后给数组赋值,通过遍历第二个字符串给数组减值,然后判断是否小于0,如果小于0则证明不是相同的字母次数。

1.3、答案

class Solution 
    public boolean isAnagram(String s, String t) 
        if(s.length() != t.length())
            return false;
        
        int[] table = new int[26];
        for(int i = 0; i < s.length(); i++)
            table[s.charAt(i) - 'a']++;
        
        for(int j = 0; j < t.length(); j++)
            table[t.charAt(j) - 'a']--;
            if(table[t.charAt(j) - 'a'] < 0)
                return false;
            
        
        return true;
    

复杂度分析

时间复杂度:O(n),其中 n 为 s 的长度。

空间复杂度:O(S),其中 S 为字符集大小,此处 S=26。

以上是关于leetcode算法242.有效的字母异位词的主要内容,如果未能解决你的问题,请参考以下文章

leetcode算法242.有效的字母异位词

LeetCode-242-有效的字母异位词

leetCode242 有效的字母异位词

LeetCode 242. 有效的字母异位词

LeetCode 242. 有效的字母异位词(Valid Anagram)

leetcode 242 有效的字母异位词(Easy)