242. 有效的字母异位词
给定两个字符串 *s*
和 *t*
,编写一个函数来判断 *t*
是否是 *s*
的字母异位词。
注意:若 *s*
和 *t*
中每个字符出现的次数都相同,则称 *s*
和 *t*
互为字母异位词。
示例 1:
1 | 输入: s = "anagram", t = "nagaram" |
示例 2:
1 | 输入: s = "rat", t = "car" |
提示:
1 <= s.length, t.length <= 5 * 104
s
和t
仅包含小写字母
题解:
方法一:
哈希表
1 | public static boolean isAnagram(String s, String t) { |
- 时间复杂度:O(n),n是字符串s的长度
- 空间复杂度:O(|S|),S为字符集的大小,此处为26。
方法2:
排序,字母异位词代表字符以及字符的个数要一致,则等价于排序后两字符串相等。
1 | public static boolean isAnagram(String s, String t) { |
- 时间复杂度:O(logN),排序所用到的时间复杂度
- 空间复杂度:O(logN),排序所用到的空间复杂度