0975 - Cuvinte 2
De la Universitas MediaWiki
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
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()