Jump to content

[C++] Permutari


Cdorsu
 Share

Recommended Posts

O metoda destul de usoara cu care sa faceti permutari este functia

std::next_permutation

aflata in biblioteca

#include <algorithm>

Puteti folosi aceasta funtie in orice clasa STL.

 

Pentru putina practica sa verificam daca doua cuvinte sunt anagrame.

 

Doua cuvinte anagrame sunt doua cuvinte care au aceleasi litere (nu conteaza daca sunt sau nu in ordine).

#include <iostream> // intrari si iesiri standard
#include <algorithm> // Avem nevoie pentru functia next_permutation
#include <string.h> //Avem nevoie pentru clasa string
 
bool Anagrama(std::string str,std::string str2) //Functia care verifica daca cele doua cuvinte sunt anagrame
{
    if(str1 == str2)//Daca sunt aceleasi cuvinte sunt anagrame
        return true;
    do//Nu stiu dece, dar am vrut sa folosesc un do-while aici
    {
        if(str == str2)//verificam daca cele doua siruri coincid
            return true; //daca coincid, returnam adevarat
    }while(std::next_permutation(str.begin(),//Iterator pentru locul de unde se incepe permutarea
                                 str.end()));//Iterator pentru locul unde se termina permutarea - Elementele din string cu care vom face permutarea (cu toate)
    return false; //Sirurile nu au coincis niciodata, deci nu sunt anagrame
}
 
int main()//Functia principala
{
    std::string str, str2;//cele doua siruri
    std::cout<<"Care este primul cuvant?\n";
    std::cin>>str;//citim primul sir
    std::cout<<"Care este al doilea cuvant?\n";
    std::cin>>str2;//citim al doilea sir
    if(Anagrama(str,str2))//verificam si afisam mesajele corespunzatoare
    {
        std::cout<<"Cele doua cuvinte sunt anagrame.\n";
        return 0;
    }
    std::cout<<"Cele doua cuvinte nu sunt anagrame.\n";
    return 0;
}

Rezultatul:

XyCzzkm.png2PqNcEV.png

 

Edited by Cdorsu
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.