¿No es más fácil pasar ambas cadenas a minúsculas, hacerles un sort y comparar resultados?
Si tiene las mismas letras, por ordenamiento numérico terminarían en el mismo lugar y las cadenas deberían ser "equivalentes".
Grosero ejemplo:
Te olvidas completamente de los for anidados.
Saludos.
Si tiene las mismas letras, por ordenamiento numérico terminarían en el mismo lugar y las cadenas deberían ser "equivalentes".
Grosero ejemplo:
Código (cpp) [Seleccionar]
bool isAnagram(string firstWord, string secondWord){
// To lowercase
transform (firstWord.begin(), firstWord.end(), firstWord.begin(), ::tolower);
transform (secondWord.begin(), secondWord.end(), secondWord.begin(), ::tolower);
// Sort
sort(firstWord.begin(),firstWord.end(), greater<char>() );
sort(secondWord.begin(),secondWord.end(), greater<char>() );
return (firstWord == secondWord);
}
Te olvidas completamente de los for anidados.
Saludos.