fbpx

Problema #975 – Cuvinte2 – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se dă o propoziție formată din litere mici ale alfabetului englez, spații și semnele de punctuație ,.. Determinați un cuvânt palindrom din propoziție, primul în ordine alfabetică.

Date de intrare

Programul citește de la tastatură propoziția dată.

Date de ieșire

Programul va afișa pe ecran cuvântul determinat, sau mesajul IMPOSIBIL, dacă în șir nu există niciun cuvânt palindrom.

Restricții și precizări

  • propoziția citită va conține cel mult 255 de caractere
  • cuvintele din propoziție vor avea maxim 10 litere

Exemplu

Intrare

ele deschid un capac, aerisirea este ok

Ieșire

aerisirea
#include <bits/stdc++.h>

using namespace std;

bool palindrom(char s[])
{
    for(int i = 0 , j = strlen(s)-1; i < j ; ++i , --j)
    if(s[i]!=s[j])
    return 0;
    return 1;

}

int main()
{
    char s[256] , *p , pal[11]="zzzzzzzzzz";
    cin.getline(s , 256);
    p = strtok(s , " .,");
    bool gasit = false;
    while(p)
    {
        if(palindrom(p))
            if(strcmp(p , pal) < 0) strcpy(pal , p) , gasit = 1;
        p = strtok(NULL , " .,");
    }
    if(gasit)
        cout << pal;
    else
        cout << "IMPOSIBIL";
    return 0;
}
Comentarii

S-ar putea sa iti placa