面试题 01.02. 判定是否互为字符重排
给定两个字符串 s1
和 s2
,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。
示例 1:
输入: s1 = "abc", s2 = "bca"
输出: true
题解
采用HashMap 存储字符出现次数
class Solution {
public boolean CheckPermutation(String s1, String s2) {
if (s1.length() != s2.length()){
return false;
}
Map<Character, Integer> map = new HashMap<>();
for(int i = 0; i < s1.length(); i++){
// getOrDefault() --> 获取值若没有就设置默认值
map.put(s1.charAt(i), map.getOrDefault(s1.charAt(i), 0) + 1);
map.put(s2.charAt(i), map.getOrDefault(s2.charAt(i), 0) - 1);
}
// 遍历HashMap
for(Character key : map.keySet()){
if (map.get(key) != 0) {
return false;
}
}
return true;
}
}