Przejdź do głównej zawartości

Anagramy

Anagram jest to, najczęściej, wyraz powstały w wyniku przestawień liter w innym wyrazie.

Zauważyć należy, że każde słowo to tak naprawdę zbór znaków. Jeżeli mamy słowo i jego anagram to składają się one z tych samych liter. Sortując litery (w kolejności rosnącej lub malejącej) w tych wyrazach utworzymy identyczne ciągi. Tak przetworzone ciągi należy porównać by dowiedzieć się czy jedno słowo jest anagramem drugiego (i odwrotnie).

Wykorzystując funkcję sort

#include <iostream>
#include <algorithm>
using namespace std;
 
int main() {
    string sSlowo1, sSlowo2;
    while(cin >> sSlowo1 >> sSlowo2){
        sort(sSlowo1.begin(),sSlowo1.end());
        sort(sSlowo2.begin(),sSlowo2.end());
        if (sSlowo1 == sSlowo2)
            cout << "Tak" << endl;
        else
            cout << "Nie" << endl;
    }
    return 0;
}


Wykorzystując sortowanie bąbelkowe

#include <iostream>
#include <algorithm>
using namespace std;
 
string sort(string s){
    int l = s.size();
    for(int i = 0; i < l; i++){
        for(int j = 0; j < l - i - 1; j++){
            if(s[j]>s[j+1])
                swap(s[j],s[j+1]);
        }
    }
    return s;
}
 
int main() {
    string sSlowo1, sSlowo2;
    while(cin >> sSlowo1 >> sSlowo2){
        sSlowo1 = sort(sSlowo1);
        sSlowo2 = sort(sSlowo2);
        if (sSlowo1 == sSlowo2)
            cout << "Tak" << endl;
        else
            cout << "Nie" << endl;
    }
    return 0;
}


Popularne posty z tego bloga

[C++]Konwersja systemu dziesiętnego na binarny [dec2bin, dec2u2]

Konwersja między systemami liczbowymi była już poruszana w tym serwisie tym razem zajmę się kodem U2. Inaczej zwany uzupełnieniem do 2. Opis tego systemu pojawił się w kontekście wstępu do programowania w języku Python [ tutaj ]. Prosty program tzw. szkolny zamiany nieujemnej liczby dziesiętnej na jej postać binarną: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include <iostream> using namespace std; int main () { int liczba; cin >> liczba; string wynik; while (liczba){ wynik = (liczba % 2 ? "1" : "0" ) + wynik; liczba /= 2 ; } cout << wynik; return 0 ; } Poniżej prezentuję kod programu, który zawiera trzy metody rozwiązania problemu jakim jest wyświetlenie użytkownikowi reprezentacji u2 podanej przez niego liczby dziesiętnej. Pierwsza z nich wywodzi się z typowego algorytmu konwersji systemu dec do u2: 1. przedstaw bezwzględną wartość liczby dziesiętnej w postaci binarnej, 2. dodaj na początek

Python - lekcja 005

Spis treści - zamiana całkowitych liczb dziesiętnych na ich odpowiedniki w innych systemach liczbowych (algorytm), - ujemne liczby całkowite w systemie binarnym (ZM, U1, U2, algorytm, formatowanie stringów, rzutowanie ze zmianą systemu liczbowego) [dec2bin, dec2ZM, dec2U1, dec2U2] - zadania.