0975 - Cuvinte 2
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 maximum 10 litere
Exemplu 1
- Intrare
ele deschid un capac, aerisirea este ok
- Iesire
Datele de intrare corespund restrictiilor impuse aerisirea
Exemplu 2
- Intrare
acel produs este nemultumitor
- Iesire
Datele de intrare nu corespund restrictiilor impuse
Rezolvare
<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>