Comparar se duas strings de texto são anagramas é uma grande tarefa de resolução de problemas para melhorar as habilidades de programação.
Um anagrama é uma string formada pela reorganização das letras de uma string diferente. Verificar se duas cordas são anagramas uma da outra pode parecer difícil, mas é um pouco complicado e aparentemente simples. Neste artigo, você aprenderá como verificar se duas strings são anagramas uma da outra usando C ++, Python e JavaScript.
Declaração do Problema
São dadas duas strings s1 e s2, você precisa verificar se as duas strings são anagramas uma da outra ou não.
Exemplo 1: Seja s1 = "criativo" e s2 = "reativo".
Como a segunda string pode ser formada reorganizando as letras da primeira string e vice-versa, as duas strings são anagramas uma da outra.
Exemplo 2: Let s1 = "Peter Piper escolheu um pedaço de pimenta em conserva" e s2 = "Um pedaço de pimenta em conserva que Peter Piper escolheu".
Como a segunda string não pode ser formada reorganizando as letras da primeira string e vice-versa, as duas strings não são anagramas uma da outra.
Processo para verificar se duas strings são anagramas uma da outra
Você pode seguir a abordagem abaixo para verificar se as duas strings são anagramas uma da outra:
- Compare o comprimento de ambas as cordas.
- Se o comprimento de ambas as strings não for o mesmo, significa que não podem ser anagramas uma da outra. Portanto, retorna falso.
- Se o comprimento de ambas as cordas for o mesmo, prossiga.
- Classifique as duas strings.
- Compare as duas strings classificadas.
- Se as duas strings classificadas forem iguais, significa que são anagramas uma da outra. Portanto, retorna verdadeiro.
- Se ambas as strings classificadas forem diferentes, significa que não são anagramas uma da outra. Portanto, retorna falso.
Relacionado: Como verificar se uma string é um palíndromo
Programa C ++ para verificar se duas strings são anagramas uma da outra
Abaixo está o programa C ++ para verificar se duas strings são anagramas uma da outra ou não:
#incluir
usando namespace std;
bool checkAnagramas (string s1, string s2)
{
int size1 = s1.length ();
int size2 = s2.length ();
// Se o comprimento de ambas as strings não forem iguais,
// significa que eles não podem ser anagramas um do outro.
// Portanto, retorna falso.
if (size1! = size2)
{
retorna falso;
}
sort (s1.begin (), s1.end ());
sort (s2.begin (), s2.end ());
para (int i = 0; i {
if (s1 [i]! = s2 [i])
{
retorna falso;
}
}
return true;
}
int main ()
{
string s1 = "ouvir";
string s2 = "silencioso";
cout << "String 1:" << s1 << endl;
cout << "String 2:" << s2 << endl;
if (verificar anagramas (s1, s2))
{
cout << "Sim, as duas strings são anagramas uma da outra" << endl;
}
outro
{
cout << "Não, as duas strings não são anagramas uma da outra" << endl;
}
string s3 = "Bem-vindo ao MUO";
string s4 = "MUO de boas-vindas";
cout << "String 3:" << s3 << endl;
cout << "String 4:" << s4 << endl;
if (verificar anagramas (s3, s4))
{
cout << "Sim, as duas strings são anagramas uma da outra" << endl;
}
outro
{
cout << "Não, as duas strings não são anagramas uma da outra" << endl;
}
string s5 = "Peter Piper pegou um pedaço de pimenta em conserva";
string s6 = "Um pedaço de pimenta em conserva que Peter Piper escolheu";
cout << "String 5:" << s5 << endl;
cout << "String 6:" << s6 << endl;
if (verificar anagramas (s5, s6))
{
cout << "Sim, as duas strings são anagramas uma da outra" << endl;
}
outro
{
cout << "Não, as duas strings não são anagramas uma da outra" << endl;
}
string s7 = "Ela vende conchas à beira-mar";
string s8 = "conchas à beira-mar";
cout << "String 7:" << s7 << endl;
cout << "String 8:" << s8 << endl;
if (verificar anagramas (s7, s8))
{
cout << "Sim, as duas strings são anagramas uma da outra" << endl;
}
outro
{
cout << "Não, as duas strings não são anagramas uma da outra" << endl;
}
string s9 = "criativo";
string s10 = "reativo";
cout << "String 9:" << s9 << endl;
cout << "String 10:" << s10 << endl;
if (verificar anagramas (s9, s10))
{
cout << "Sim, as duas strings são anagramas uma da outra" << endl;
}
outro
{
cout << "Não, as duas strings não são anagramas uma da outra" << endl;
}
return 0;
}
Saída:
String 1: ouvir
String 2: silencioso
Sim, as duas strings são anagramas uma da outra
String 3: Bem-vindo ao MUO
String 4: MUO de boas-vindas
Sim, as duas strings são anagramas uma da outra
String 5: Peter Piper escolheu um pedaço de pimenta em conserva
String 6: Um bocado de pimentas em conserva que Peter Piper escolheu
Não, as duas strings não são anagramas uma da outra
String 7: Ela vende conchas à beira-mar
String 8: conchas à beira-mar
Não, as duas strings não são anagramas uma da outra
String 9: criativo
String 10: reativo
Sim, as duas strings são anagramas uma da outra
Relacionado: Como contar as ocorrências de um determinado caractere em uma string
Programa Python para verificar se duas strings são anagramas uma da outra
Abaixo está o programa Python para verificar se duas strings são anagramas uma da outra ou não:
def checkAnagrams (s1, s2):
tamanho1 = len (s1)
tamanho2 = len (s2)
# Se o comprimento de ambas as cordas não forem iguais,
# significa que eles não podem ser anagramas um do outro.
# Portanto, retorna falso.
se tamanho1! = tamanho2:
retornar 0
s1 = classificado (s1)
s2 = classificado (s2)
para i no intervalo (0, tamanho1):
se s1 [i]! = s2 [i]:
retorna falso
retornar verdadeiro
s1 = "ouvir"
s2 = "silencioso"
print ("String 1:", s1)
print ("String 2:", s2)
if (verificarAnagramas (s1, s2)):
print ("Sim, as duas strings são anagramas uma da outra")
outro:
print ("Não, as duas strings não são anagramas uma da outra")
s3 = "Bem-vindo ao MUO"
s4 = "MUO de boas-vindas"
print ("String 3:", s3)
print ("String 4:", s4)
if (verificarAnagramas (s3, s4)):
print ("Sim, as duas strings são anagramas uma da outra")
outro:
print ("Não, as duas strings não são anagramas uma da outra")
s5 = "Peter Piper pegou um pedaço de pimenta em conserva"
s6 = "Um bocado de pimentas em conserva que Peter Piper escolheu"
print ("String 5:", s5)
print ("String 6:", s6)
if (verificarAnagramas (s5, s6)):
print ("Sim, as duas strings são anagramas uma da outra")
outro:
print ("Não, as duas strings não são anagramas uma da outra")
s7 = "Ela vende conchas à beira-mar"
s8 = "conchas à beira-mar"
print ("String 7:", s7)
print ("String 8:", s8)
if (verificarAnagramas (s7, s8)):
print ("Sim, as duas strings são anagramas uma da outra")
outro:
print ("Não, as duas strings não são anagramas uma da outra")
s9 = "criativo"
s10 = "reativo"
print ("String 9:", s9)
print ("String 10:", s10)
if (verificarAnagramas (s9, s10)):
print ("Sim, as duas strings são anagramas uma da outra")
outro:
print ("Não, as duas strings não são anagramas uma da outra")
Saída:
String 1: ouvir
String 2: silencioso
Sim, as duas strings são anagramas uma da outra
String 3: Bem-vindo ao MUO
String 4: MUO de boas-vindas
Sim, as duas strings são anagramas uma da outra
String 5: Peter Piper escolheu um pedaço de pimenta em conserva
String 6: Um bocado de pimentas em conserva que Peter Piper escolheu
Não, as duas strings não são anagramas uma da outra
String 7: Ela vende conchas à beira-mar
String 8: conchas à beira-mar
Não, as duas strings não são anagramas uma da outra
String 9: criativo
String 10: reativo
Sim, as duas strings são anagramas uma da outra
Relacionado: Como encontrar vogais, consoantes, dígitos e caracteres especiais em uma string
Verifique se duas strings são anagramas uma da outra em JavaScript
Abaixo está o programa JavaScript para verificar se duas strings são anagramas uma da outra ou não:
function checkAnagrams (s1, s2) {
deixe size1 = s1.length;
deixe size2 = s2.length;
// Se o comprimento de ambas as strings não forem iguais,
// significa que eles não podem ser anagramas um do outro.
// Portanto, retorna falso.
if (size1! = size2)
{
retorna falso;
}
s1.sort ();
s2.sort ();
para (deixe i = 0; i {
if (s1 [i]! = s2 [i])
{
retorna falso;
}
}
return true;
}
var s1 = "ouvir";
var s2 = "silencioso";
document.write ("String 1:" + s1 + "
");
document.write ("String 2:" + s2 + "
");
if (checkAnagrams (s1.split (""), s2.split (""))) {
document.write ("Sim, as duas strings são anagramas uma da outra" + "
");
} outro {
document.write ("Não, as duas strings não são anagramas uma da outra" + "
");
}
var s3 = "Bem-vindo ao MUO";
var s4 = "MUO de boas-vindas";
document.write ("String 3:" + s3 + "
");
document.write ("String 4:" + s4 + "
");
if (checkAnagrams (s3.split (""), s4.split (""))) {
document.write ("Sim, as duas strings são anagramas uma da outra" + "
");
} outro {
document.write ("Não, as duas strings não são anagramas uma da outra" + "
");
}
var s5 = "Peter Piper escolheu um pedaço de pimenta em conserva";
var s6 = "Um pedaço de pimenta em conserva que Peter Piper escolheu";
document.write ("String 5:" + s5 + "
");
document.write ("String 6:" + s6 + "
");
if (checkAnagrams (s5.split (""), s6.split (""))) {
document.write ("Sim, as duas strings são anagramas uma da outra" + "
");
} outro {
document.write ("Não, as duas strings não são anagramas uma da outra" + "
");
}
var s7 = "Ela vende conchas à beira-mar";
var s8 = "conchas à beira-mar";
document.write ("String 7:" + s7 + "
");
document.write ("String 8:" + s8 + "
");
if (checkAnagrams (s7.split (""), s8.split (""))) {
document.write ("Sim, as duas strings são anagramas uma da outra" + "
");
} outro {
document.write ("Não, as duas strings não são anagramas uma da outra" + "
");
}
var s9 = "criativo";
var s10 = "reativo";
document.write ("String 9:" + s9 + "
");
document.write ("String 10:" + s10 + "
");
if (checkAnagrams (s9.split (""), s10.split (""))) {
document.write ("Sim, as duas strings são anagramas uma da outra" + "
");
} outro {
document.write ("Não, as duas strings não são anagramas uma da outra" + "
");
}
Saída:
String 1: ouvir
String 2: silencioso
Sim, as duas strings são anagramas uma da outra
String 3: Bem-vindo ao MUO
String 4: MUO de boas-vindas
Sim, as duas strings são anagramas uma da outra
String 5: Peter Piper escolheu um pedaço de pimenta em conserva
String 6: Um bocado de pimentas em conserva que Peter Piper escolheu
Não, as duas strings não são anagramas uma da outra
String 7: Ela vende conchas à beira-mar
String 8: conchas à beira-mar
Não, as duas strings não são anagramas uma da outra
String 9: criativo
String 10: reativo
Sim, as duas strings são anagramas uma da outra
Relacionado: Como você encontra o valor ASCII de um personagem?
Use os recursos certos para aprender a codificar
Se você está procurando solidificar suas habilidades de codificação, é importante aprender novos conceitos e passar algum tempo usando-os. Uma maneira de fazer isso é com aplicativos de programação, que o ajudarão a aprender diferentes conceitos de programação enquanto se diverte ao mesmo tempo.
Quer aprimorar suas habilidades de codificação? Esses aplicativos e sites irão ajudá-lo a aprender a programar em seu próprio ritmo.
Leia a seguir
- Programação
- JavaScript
- Pitão
- Programação C

Yuvraj é estudante de graduação em Ciência da Computação na Universidade de Delhi, na Índia. Ele é apaixonado por Full Stack Web Development. Quando não está escrevendo, ele está explorando a profundidade de diferentes tecnologias.
Assine a nossa newsletter
Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!
Clique aqui para se inscrever