题目描述
给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。
题解
用HashMap,记录字符出现次数,如果字符相同且出现次数相同,则能通过重新排列得到
class Solution {
public boolean CheckPermutation(String s1, String s2) {
//重新排列成为另一个字符串,也就是两个字符串中所有字符出现次数相等
HashMap<Character,Integer> map = new HashMap<>();
for(int i = 0; i < s1.length(); i++){
map.put(s1.charAt(i),map.getOrDefault(s1.charAt(i),0)+1);
}
for(int i = 0; i < s2.length(); i++){
if(map.containsKey(s2.charAt(i))){
map.put(s2.charAt(i),map.get(s2.charAt(i)) - 1);
if(map.get(s2.charAt(i)) < 0){
return false;
}
}else{
return false;
}
}
return true;
}
}