Given two strings s and t , write a function to determine if t is an anagram of s.
Example 1:
Input: s = "anagram", t = "nagaram" Output: true
Example 2:
Input: s = "rat", t = "car" Output: false
这个问题,本质上是问两个字符集是否相等,做法是将字符集排序,逐个比较两个字符集对应位的字符的值或者统计两个字符集中各个字符的数量是否对应相等。
class Solution {
public boolean isAnagram(String s, String t) {
if(s == null &&t == null)
return true;
if(s == null && t != null)
return false;
if(s != null && t == null)
return false;
if(s.length() != t.length()) {
return false;
}
char[] chars = s.toCharArray();
char[] check = t.toCharArray();
List<Character> charsList = new ArrayList<>();
List<Character> checkList = new ArrayList<>();
for(int i = 0; i < chars.length; i++){
charsList.add(chars[i]);
checkList.add(check[i]);
}
Collections.sort(charsList);
Collections.sort(checkList);
for(int i = 0; i < chars.length; i++) {
if(charsList.get(i) != checkList.get(i))
return false;
}
return true;
}
}