今天在公司继续刷题 开始刷到哈希表部分 第一题便是这个有效字母的异位词
题目:
给定两个字符串 s
和 t
,编写一个函数来判断 t
是否是 s
的 字母异位词。
示例 1:
输入: s = "anagram", t = "nagaram"
输出: true
示例 2:
输入: s = "rat", t = "car"
输出: false
提示:
1 <= s.length, t.length <= 5 * 104
s
和t
仅包含小写字母
这道题属于比较简单的一题 最简单的办法就是利用数组 因为数组就是一个简单的哈希表
如下:
class Solution {
public static boolean isAnagram(String s, String t) {
int[] table=new int[26];
int[] table2=new int[26];
//创建两个数组 用于统计字符串出现次数
for (int i=0;i<s.length();i++){
table[s.charAt(i)-'a']++;
}
//扫描字母 让表中的字母所在下标+1 ,-'a'是获得相对位置即可 不需要知道ascll码(连续)
for (int i=0;i<t.length();i++){
table2[t.charAt(i)-'a']++;
}
for (int i=0;i<26;i++){
if (table[i]!=table2[i]){
return false;
//对照 如果有一个部分不相等 说明不是有效异位词
}
}
return true;
}
}