1. 题目
2287. 重排字符形成目标字符串
![在这里插入图片描述](https://img-blog.csdnimg.cn/420d49f2210c43308a5f1faedb58b6cb.png)
2. 思路
- 统计两个哈希表,key都是target中的字符,value分别是s、target中字符对应的个数
- 满足条件的情况是,s中的字符个数/target中字符个数 的最小值
3. 代码
var rearrangeCharacters = function(s, target) {
let targetSet = new Set(target)
let map1 = new Map(), map2 = new Map()
for (let ch of s) {
if (targetSet.has(ch)) {
map1.set(ch, (map1.get(ch) || 0) + 1)
}
}
for(let ch of target) {
map2.set(ch, (map2.get(ch) || 0) + 1)
}
console.log(map1, map2);
let min = Infinity
for (let [key, val2] of map2) {
let val1 = map1.get(key)
min = Math.min(min, (val1 / val2) | 0)
}
return min
};
4. 参考
简单的解法