0096 - Palindrom Maxim: Difference between revisions
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 | edit source]
Să se scrie un program care citește o propoziție și determină cuvântul 'palindrom de lungime maximă.
Date de intrare[edit | edit source]
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 | edit source]
Programul afișează pe ecran cel mai lung cuvânt palindrom.
Restricţii şi precizări[edit | edit source]
- 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 | edit source]
- Intrare
121 prieteni analizeaza Un capac; aeriSIrea radar
- Iesire
Datele de intrare corespund restrictiilor impuse aeriSIrea
Exemplul 2[edit | edit source]
- Intrare
121 prieteni analizeazacevafoarteinteresant Un capac; aeriSIrea radar
- Iesire
Datele de intrare nu corespund restrictiilor impuse
Rezolvare[edit | edit source]
<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 | edit source]
În propoziție sunt 4 cuvinte palindrom: 121, capac, aeriSIrea, radar. Dintre acestea, cel mai lung este aeriSIrea.