1.题目描述
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
2.题目示例
3.思路及代码
- 思路一:利用hashmap,暴力求解
- 代码:
class Solution {
public boolean isAnagram(String s, String t) {
//长度不一样直接返回false
if(s.length() != t.length()){
return false;
}
//统计原字符串的字符出现次数
Map<Character, Integer> map = new HashMap<>();
for(char c : s.toCharArray()){
map.put(c, map.getOrDefault(c, 0) + 1);
}
//去目标字符串中去找是否符合条件
for(char c : t.toCharArray()){
if(!map.containsKey(c)){
return false;
}else{
map.put(c, map.get(c) - 1);
if(map.get(c) < 0){
return false;
}
}
}
return true;
}
}
- 思路二:利用排序规则
- 代码:
class Solution {
public boolean isAnagram(String s, String t) {
char[] c1 = s.toCharArray();
char[] c2 = t.toCharArray();
Arrays.sort(c1);
Arrays.sort(c2);
//返回两个字符串是否相等即可
return (new String(c1)).equals(new String(c2));
}
}