0975 - Cuvinte 2

From Bitnami MediaWiki

Cerinţa[edit | edit source]

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[edit | edit source]

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

Date de ieșire[edit | edit source]

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[edit | edit source]

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

Exemplu 1[edit | edit source]

Intrare
ele deschid un capac, aerisirea este ok
Iesire
Datele de intrare corespund restrictiilor impuse
aerisirea


Exemplu 2[edit | edit source]

Intrare
acel produs este nemultumitor
Iesire
Datele de intrare nu corespund restrictiilor impuse


Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line> import string


def este_palindrom(cuvant):

   return cuvant == cuvant[::-1]


def main():

   # Citirea propoziției de la tastatură
   propozitie = input().strip()
   # Verifică dacă propoziția respectă restricțiile
   if len(propozitie) > 255 or any(len(cuvant) > 10 for cuvant in propozitie.split()):
       print("Datele de intrare nu corespund restrictiilor impuse")
       return
   print("Datele de intrare corespund restrictiilor impuse")
   # Înlăturarea semnelor de punctuație
   propozitie = propozitie.translate(str.maketrans(, , string.punctuation))
   # Obținerea listei de cuvinte
   cuvinte = propozitie.split()
   # Filtrarea cuvintelor palindrom și sortarea lor în ordine alfabetică
   cuvinte_palindrom = sorted(cuvant for cuvant in cuvinte if este_palindrom(cuvant))
   # Afișarea rezultatului
   if cuvinte_palindrom:
       print(cuvinte_palindrom[0])
   else:
       print("IMPOSIBIL")


if __name__ == "__main__":

   main()

</syntaxhighlight>