0
点赞
收藏
分享

微信扫一扫

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



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

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

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

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


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



文章目录

  • ​​一、leetcode算法​​
  • ​​ 1、有效的字母异位词​​
  • ​​1.1、题目​​
  • ​​1.2、思路​​
  • ​​1.3、答案​​

一、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、答案

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

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。



举报

相关推荐

0 条评论