原题链接:242. Valid Anagram
【思路1-Java】:
将字符串转化为字符数组,然后排序,最后再比较两个字符串是否相等。
public class Solution {
public boolean isAnagram(String s, String t) {
char[] s1 = s.toCharArray();
char[] t1 = t.toCharArray();
Arrays.sort(s1);
Arrays.sort(t1);
return String.valueOf(s1).equals(String.valueOf(t1)); //将字符数组转化为字符串后再比较两字符串是否相等
}
}
32 / 32 test cases passed. Runtime: 5 ms
建立一个容量为26大小的int,并将字母转化为int值——将字符串的每个字母char值减去‘a'得到,作为数组索引,字母出现次数作为数组值:
public class Solution {
public static boolean isAnagram(String s, String t) {
int[] count1 = new int[26];
for(int i=0; i<s.length(); i++)
count1[s.charAt(i)-'a']++;
for(int i=0; i<t.length(); i++)
count1[t.charAt(i)-'a']--;
for(int i=0; i<26; i++)
if(count1[i] != 0) return false;
return true;
}
}
32 / 32
test cases passed. Runtime: 7 ms Your runtime beats 59.12% of javasubmissions.
欢迎优化!