Problème
Deux phrases sont des anagrammes si elles contiennent exactement les mêmes lettres, le même nombre de fois, en ignorant la casse, les espaces et la ponctuation.
Implémentez is_anagram(first, second).
Entrée
first : La première phrase. second : La seconde phrase.
Sortie
Retournez true si les phrases sont des anagrammes.
Contraintes
0 ≤ longueur de chaque ≤ 10 000 (ASCII)
Exemples
Entrée :
first = "Listen"
second = "Silent"
Sortie attendue :
expected = True
Entrée :
std::string first = "Listen";
std::string second = "Silent";
Sortie attendue :
bool expected = true;
Entrée :
string first = "Listen";
string second = "Silent";
Sortie attendue :
bool expected = true;
Explication
Les deux utilisent une fois chacune des lettres e, i, l, n, s, t.
Entrée :
first = "apple"
second = "paddle"
Sortie attendue :
expected = False
Entrée :
std::string first = "apple";
std::string second = "paddle";
Sortie attendue :
bool expected = false;
Entrée :
string first = "apple";
string second = "paddle";
Sortie attendue :
bool expected = false;
Explication
Les lettres et leurs occurrences diffèrent.
Comment l'aborder
Essayez d'abord seul, puis ouvrez les indices un par un.
Indice 1
Supprimez les caractères non lettres et ignorez la casse avant de comparer.
Indice 2
Comptez les fréquences des caractères pour les deux phrases, ou triez leurs formes normalisées.
Indice 3
La ponctuation et les espaces ne doivent pas influencer le résultat.
Complexité attendue
temps O(n), espace supplémentaire O(1)
Références
Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.