Given two strings s and t, write a function to determine if t is an anagram of s.
For example,
s = “anagram”, t = “nagaram”, return true.
s = “rat”, t = “car”, return false.
Note:
You may assume the string contains only lowercase alphabets.
思路1:题目标签为哈希表和排序,解题过程只用到排序。题目属于简单。
代码:
public class Solution {
public boolean isAnagram(String s, String t) {
char[] arr1 = s.toCharArray();
Arrays.sort(arr1);
char[] arr2 = t.toCharArray();
Arrays.sort(arr2);
if (arr1.length != arr2.length) {
return false;
}
for (int i = 0; i < arr1.length; i++) {
if(arr1[i] !=arr2[i]){
return false;
}
}
return true;
}
}
思路2:利用HashMap
public class Solution {
public boolean isAnagram(String s, String t) {
HashMap<Character, Integer> hashMap = new HashMap<Character, Integer>();
if (s.length() != t.length()) {
return false;
}
for (int i = 0; i < s.length(); i++) {
Character c = s.charAt(i);
if(hashMap.containsKey(c)){
hashMap.put(c, hashMap.get(c)+1);
}else{
hashMap.put(c, 1);
}
}
for (int i = 0; i < t.length(); i++) {
Character c = t.charAt(i);
if(hashMap.containsKey(c) && hashMap.get(c)>0){
hashMap.put(c, hashMap.get(c)-1);
}else{
return false;
}
}
return true;
}
}