0096 - Palindrom Maxim: Difference between revisions
Pagină nouă: == Cerinţa == Să se scrie un program care citește o propoziție și determină cuvântul '''palindrom'' de lungime maximă. == Date de intrare == 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 == Programul afișează pe ecran cel mai lung cuvânt palindrom. == Restricţii şi precizări == * propoziția va conține cel mult '''255''' de caractere; * c... |
No edit summary |
||
(2 intermediate revisions by one other user not shown) | |||
Line 12: | Line 12: | ||
* nu se face distincție între literele mari și cele mici; | * nu se face distincție între literele mari și cele mici; | ||
* pentru toate testele date există soluție | * pentru toate testele date există soluție | ||
== | == Exemplul 1 == | ||
; Intrare | ; Intrare | ||
121 prieteni analizeaza Un capac; aeriSIrea radar | 121 prieteni analizeaza Un capac; aeriSIrea radar | ||
Line 19: | Line 19: | ||
aeriSIrea | aeriSIrea | ||
<br> | <br> | ||
== | |||
== Exemplul 2 == | |||
; Intrare | ; Intrare | ||
121 prieteni analizeazacevafoarteinteresant Un capac; aeriSIrea radar | 121 prieteni analizeazacevafoarteinteresant Un capac; aeriSIrea radar | ||
Line 25: | Line 26: | ||
Datele de intrare nu corespund restrictiilor impuse | Datele de intrare nu corespund restrictiilor impuse | ||
<br> | <br> | ||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
Line 60: | 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.