Анаграмма строки — это другая строка, содержащая те же символы; только порядок символов может быть другим. Например, "abcd" и "dabc" являются анаграммами друг друга.

Этот алгоритм относится к шаблону счетчика частоты.

Теперь давайте решим эту проблему.

validAnagram('anagram', 'nagaram'); // true
validAnagram('aaz', 'zza'); // false
validAnagram('rat', 'cat'); // false
  1. Проверьте, имеют ли все строки одинаковую длину. (пограничный случай)
function validAnagram(str1,str2){
    if(str1.length!=str2.length){
        return false;
    }
}

2. Создайте один пустой объект

function validAnagram(str1,str2){
    if(str1.length!=str2.length){
        return false;
    }
    let counter = {};
}

3. Прокрутите str1, чтобы записать частоту в объекте.

function validAnagram(str1,str2){
    if(str1.length!=str2.length){
        return false;
    }
    let counter = {};

    for(let item of str1){
        
        if(counter[item]>0){
            counter[item]++;
        }else{
            counter[item] = 1;
        }
    }
}

4. Теперь проверьте, совпадают ли значения ключей во втором массиве. Кроме того, проверьте, установлена ​​ли у них одинаковая частота.

function validAnagram(str1,str2){
    if(str1.length!=str2.length){
        return false;
    }
    let counter = {};

    for(let item of str1){
        
        if(counter[item]>0){
            counter[item]++;
        }else{
            counter[item] = 1;
        }
    }
  
     for(let item2 of str2){
        
       if(counter[item2]>0){
           counter[item2]--;
       }
       else{
           console.log('Not a anagram')
           return false;
       }
    }
     console.log('Is a anagram')
    return true;
}