描述:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。
解释: 字母异位, 就是两个字符串中字符的数量相等且字符一样,但是顺序随意
解法:
两个字符串, java中字符可以用数字表示,字符就是26个字母,可以使用长度为26的数组来预先保存一个字符串中的字符,位置表示字符,值表示的是这个字符串中有几个字符,这样,操作第二个字符串的时候可以使用同样的方法操作,不过是对这个数组进行减法操作,如果两个字符串是字母异位的话,那个这个数组的每一项都是0.
代码如下:
public boolean isAnagram(String s, String t){
if(s == null && t == null)
return true;
if(s == null || t == null)
return false;
int[] A = new int[26];
for(char c : s.toCharArray()){
A[c-'a']++;
}
for(char c : t.toCharArray()){
A[c - 'a']--;
}
for(int i : A){
if(i != 0)
return false;
}
return true;
}