题目
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
提示:
- 1 <= s.length, t.length <= 5 * 104
- s 和 t 仅包含小写字母
解题思路(哈希表)
因为字符串只包含小写字母,所以我们可以创建一个 int[] 型数组,包含 26 个元素,全部初始化为 0,26 个元素分别代表 a~z;
遍历两个字符串,s 字符串中的字母每出现一次就在 int[] 型数组对应位置加 1,t 字符串中的字母每出现一次就在 int[] 型数组对应位置减 1;
遍历 int[] 型数组,如果数组元素全部为 0,说明两个字符串互为字母异位词。
代码如下:
class Solution {
public boolean isAnagram(String s, String t) {
int[] letter = new int[26];
char[] ch1 = s.toCharArray();
char[] ch2 = t.toCharArray();
for (int