0096 - Palindrom Maxim: Difference between revisions

From Bitnami MediaWiki
No edit summary
 
Line 62: Line 62:


</syntaxhighlight>
</syntaxhighlight>
==Explicatie==
În propoziție sunt '''4''' cuvinte palindrom: '''121, capac, aeriSIrea, radar.''' Dintre acestea, cel mai lung este '''aeriSIrea'''.

Latest revision as of 14:37, 26 December 2023

Cerinţa[edit]

Să se scrie un program care citește o propoziție și determină cuvântul 'palindrom de lungime maximă.

Date de intrare[edit]

Programul citește de la tastatură o propoziție alcătuită din litere mici sau mari ale alfabetului englez, cifre, semne de punctuație și spații.

Date de ieșire[edit]

Programul afișează pe ecran cel mai lung cuvânt palindrom.

Restricţii şi precizări[edit]

  • propoziția va conține cel mult 255 de caractere;
  • cuvintele conțin doar litere și/sau cifre și conțin cel mult 20 de caractere;
  • dacă în propoziție există mai multe cuvinte palindrom de lungime maximă, se va afișa primul dintre ele;
  • semnele de punctuație din propoziție pot fi :;.,
  • nu se face distincție între literele mari și cele mici;
  • pentru toate testele date există soluție

Exemplul 1[edit]

Intrare
121 prieteni analizeaza Un capac; aeriSIrea    radar
Iesire
Datele de intrare corespund restrictiilor impuse
aeriSIrea


Exemplul 2[edit]

Intrare
121 prieteni analizeazacevafoarteinteresant Un capac; aeriSIrea    radar
Iesire
Datele de intrare nu corespund restrictiilor impuse


Rezolvare[edit]

<syntaxhighlight lang="python" line> import string


def main():

   # Citirea propoziției de la tastatură
   propozitie = input().strip()
   # Verifică dacă propoziția respectă restricțiile
   if len(propozitie) > 255:
       print("Datele de intrare nu corespund restrictiilor impuse")
       return
   if any(len(cuvant) > 20 for cuvant in propozitie.split()):
       print("Datele de intrare nu corespund restrictiilor impuse")
       return
   print("Datele de intrare corespund restrictiilor impuse")
   # Eliminarea semnelor de punctuație din propoziție
   propozitie = propozitie.translate(str.maketrans(, , string.punctuation))
   # Căutarea celui mai lung cuvânt palindrom
   cuvinte = propozitie.split()
   cuvinte_palindrom = [cuvant for cuvant in cuvinte if cuvant.lower() == cuvant.lower()[::-1]]
   cuvant_maxim = max(cuvinte_palindrom, key=len) if cuvinte_palindrom else "nu exista"
   # Afișarea cuvântului obținut
   print(cuvant_maxim)


if __name__ == "__main__":

   main()

</syntaxhighlight>

Explicatie[edit]

În propoziție sunt 4 cuvinte palindrom: 121, capac, aeriSIrea, radar. Dintre acestea, cel mai lung este aeriSIrea.