给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
示例 1:
输入: s = “anagram”, t = “nagaram”
输出: true
示例 2:
输入: s = “rat”, t = “car”
输出: false
class Solution {
public boolean isAnagram(String s, String t) {
char[] ch1=s.toCharArray();
char[] ch2=t.toCharArray();
Arrays.sort(ch1);
Arrays.sort(ch2);
return Arrays.equals(ch1,ch2);
//String.valueOf(ch1).equals(String.valueOf(ch2));
}
}
class Solution {
public boolean isAnagram(String s, String t) {
if(s.length()!=t.length()) return false;
int[] arr=new int[26];
for(int i=0;i<s.length();i++){
arr[s.charAt(i)-'a']++;
arr[t.charAt(i)-'a']--;
}
for(int k:arr){
if(k!=0)
return false;
}
return true;
}
}
如果不全是小写字母,可以用128大小的数组,直接用字符的ASCI码++。
class Solution {
public boolean isAnagram(String s, String t) {
int[] cnt = new int[128];
if (s.length() != t.length()){
return false;
}
int len = s.length();
for (int i = 0; i < len; i++){
cnt[s.charAt(i)]++;
cnt[t.charAt(i)]--;
}
for (int i = 0; i < cnt.length; i++){
if (cnt[i] != 0){
return false;
}
}
return true;
}
}