Informatică, întrebare adresată de Utilizator anonim, 8 ani în urmă

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


CreieruI: Nu găsești ceea ce cauți?
PUNE O ÎNTREBARE

Răspunsuri la întrebare

Răspuns de raresvasiu03
0

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.

Alte întrebări interesante