题目
判断两个字符串s和t,是不是字母异位词。字符串只包含小写字母
也就是说,s的所有字母和t都一样,只是位置不同。
例如:
输入: s = “anagram”, t = “nagaram”
输出: true
解题
这道题呢,就相对简单些了。
因为题目中说了字符串都是小写字母,那就可以用26个字母的数组来存放字符串的每个字母。
新建数组 hex ,长度为26.
1,遍历s,对应hex每个字符位置,+1
2,遍历t,对应hex每个字符位置,-1
3,遍历hex,判断是不是都为0,只要不是就返回false
代码
class Solution {
public boolean isAnagram(String s, String t) {
int[] hex = new int[26];
for (int i=0;i<s.length();i++){
char sun_s = s.charAt(i);
hex[sun_s-'a']+=1;
}
for (int i=0;i<t.length();i++){
char sun_t = t.charAt(i);
hex[sun_t-'a']-=1;
}
for (int i:hex){
if (i!=0){
return false;
}
}
return true;
}
}