Strings: Making Anagrams

  • + 0 comments
    function makeAnagram(a: string, b: string): number {
        // Write your code here
        let dictA = new Map<string, number>();
        let dictB = new Map<string, number>();
        for(let ch of a){
            if (dictA.has(ch)){
                dictA.set(ch, dictA.get(ch)+1)
            }else{
                dictA.set(ch, 1)
            }
        }
        for(let ch of b){
            if (dictB.has(ch)){
                dictB.set(ch, dictB.get(ch)+1)
            }else{
                dictB.set(ch, 1)
            }
        }
        let deleteDiff = 0;
        dictA.forEach((v, k) =>{
            if (dictB.has(k)){
                deleteDiff += Math.abs(v - dictB.get(k));
            }else{
                deleteDiff +=v
            }
        })
        dictB.forEach((v, k) =>{
            if (!dictA.has(k)){
                deleteDiff += v;
            }
        })
        
        return deleteDiff
    }