Rearrange Characters to Make Target String

EasyHash TableStringCounting

Solution

export function rearrangeCharacters(s: string, target: string): number {
  function createCounter(str: string) {
    const counter = new Map<string, number>();
    for (const char of str) {
      counter.set(char, (counter.get(char) ?? 0) + 1);
    }
    return counter;
  }
 
  const sCounter = createCounter(s);
  const tCounter = createCounter(target);
 
  let answer = Number.MAX_SAFE_INTEGER;
  for (const [char, tCount] of tCounter.entries()) {
    const sCount = sCounter.get(char) ?? 0;
    answer = Math.min(answer, Math.floor(sCount / tCount));
  }
  return answer;
}