﻿#include <iostream>

using namespace std;
int main()
{
    // czołówka programu
    cout << "Palindromy\n\n";

    // zmienna na pobrane słowo
    string slowo = "";

    // komunikat
    cout << "podaj słowo, sprawdzę czy to palindrom: " << endl;
    
    // pobieramy słowo od użytkownika
    cin >> slowo;

    // tworzymy string o takie samej długości jak slowo,
    // wypełniamy go literą a 
    string slowoOdwrocone(slowo.length(), 'a');

    // odwracamy slowo i wrzucamy do slowoOdwrocone 
    for (size_t i = 0; i < slowo.length(); i++)
    {
        slowoOdwrocone[slowo.length() - i - 1] = slowo[i];
    }

    // flaga pomocnicza określajaca czy słowo jest palindromem
    // zakładamy, że słowo jest palindromem 
    bool slowoJestPalindromem = true;

    // sprawdzamy czy slowo oraz slowoOdrocone są identyczne
    for (size_t i = 0; i < slowo.length(); i++)
    {
        // jeśli w stringach slowo oraz slowoOdwrocone jakaś litera się różni
        // ustawiamy flagę
        if (slowo[i] != slowoOdwrocone[i]) {
            slowoJestPalindromem = false;
        }
    }

    // werdykt ostateczny opierający się na stanie flagi slowoJestPalindromem 
    if (slowoJestPalindromem) {
        cout << "słowo " << slowo << " jest palindromem\n";
    }
    else {
        cout << "słowo " << slowo << " nie jest palindromem\n";
    }   
}



