Scrieti un program care verifica daca doua siruri de caractere (maximum 100 de litere mici)
citite de la tastatura sunt anagrame, utilizand alocarea dinamica a memoriei. Doua siruri sunt
anagrame daca contin aceleasi litere in ordine diferita. Realizati 10 printscreenuri cu rularea
programului pe seturi de date diferite.Exemplu: Pentru sirurile anca si acna se afiseaza anagrame
Răspunsuri la întrebare
Răspuns:
#include <bits/stdc++.h>
using namespace std;
bool Anagram(string str1, string str2)
{
int n1, n2;
n1 = str1.length();
n2 = str2.length();
if (n1 != n2)
{
return false;
}
sort(str1.begin(), str1.end());
sort(str2.begin(), str2.end());
for (int i = 0; i < n1; i++)
{
if (str1[i] != str2[i])
{
return false;
}
}
return true;
}
string str1, str2;
int main()
{
cin >> str1 >> str2;
if (Anagram(str1, str2))
{
cout << "anagrame";
}
else
{
cout << "nu sunt anagrame";
}
return 0;
}
Explicație:
Sortăm alfabetic caracterele din cele două cuvinte. Cuvintele inițiale erau anagrame dacă si numai dacă după sortare sunt identice. Nu am făcut printscreen-uri la rulare, fiindcă ține de fiecare om ce seturi de date include.
PUNE O ÎNTREBARE