Verificare daca doua cuvinte sunt anagrame – siruri de caractere C++

Sa se verifice daca doua cuvinte citite de la tastatura sunt anagrame. Doua cuvinte sunt anagrame daca ele contin aceleasi caractere, dar intr-o ordine diferita. Ex : ‘informatica’ si ‘romaticafin’. Pentru aceasta, am sortat cele 2 cuvinte si le-am comparat cu functia strcmp.

Exemplu:

Spor la lucru! Daca aveti intrebari nu ezitati sa le lasati in comentarii, va vom raspunde cat de repede putem 🙂

3 Replies to “Verificare daca doua cuvinte sunt anagrame – siruri de caractere C++”

  1. Cum se poate scrie programul respectiv cu un vector de frecventa, pt a nu schimba ordinea literelor?

    Reply

    1. Salut! Trebuie sa declari un vector sa zicem frecv[25] (presupunem ca nu avem decat
      litere mici ale alfabetului englez). Dupa care, parcurgi primul cuvant litera cu litera
      si la fiecare iteratie faci frecv[a[i] – ‘a’]++. Acum in vectorul frecv[] o sa ai frecventele din primul cuvant. In continuare, parcurgi al doilea cuvant si faci frecv[b[i] – ‘a’]– (scazi
      frecventele). La sfarsit nu trebuie decat sa parcurgi vectorul frecventa. Daca vreun
      element e diferit de 0, atunci cuvintele nu sunt anagrame.

      Reply

  2. Mi se pare extrem de ineficient sa sortezi literele cuvintelor in ordine alfabetica si sa compari la final cuvintele date. Problema se poate rezolva mult mai eficient.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *