给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。
示例 1:
输入: s = "anagram", t = "nagaram"
输出: true
示例 2:
输入: s = "rat", t = "car"
输出: false
解法1
//将两个字符串转为字符数组后,排序并进行比较
class Solution {
public boolean isAnagram(String s, String t) {
if (s.length() != t.length()) {
return false;
}
char[] str1 = s.toCharArray();
char[] str2 = t.toCharArray();
Arrays.sort(str1);
Arrays.sort(str2);
return Arrays.equals(str1, str2);
}
}
解法2
//用一个1*26的数组代表26个字母
//遍历s,对应的字母++
//再遍历t,对应字母--
//若出现小于0的结果,则代表出现了s中没有的字母
class Solution {
public boolean isAnagram(String s, String t) {
if (s.length() != t.length()) {
return false;
}
int[] table = new int[26];
for (int i = 0; i < s.length(); i++) {
table[s.charAt(i) - 'a']++;
}
for (int i = 0; i < t.length(); i++) {
table[t.charAt(i) - 'a']--;
if (table[t.charAt(i) - 'a'] < 0) {
return false;
}
}
return true;
}
}
标签:return,int,异位,字母,有效,length,table,false
From: https://www.cnblogs.com/cymxd/p/18400815