2738 - Dist Lung Max
De la Universitas MediaWiki
Cerinţa
Se dă un șir de caractere care conține cuvinte formate din litere mici ale alfabetului englez și separate printr-un singur spațiu. Să se determine cel mai lung cuvânt care are toate literele distincte. Dacă nu există niciun cuvânt cu toate literele distincte se va afișa -1.
Date de intrare
Programul citește de la tastatură un șir de caractere.
Date de ieşire
Programul va afișa pe ecran cuvântul determinat sau -1, conform cerinței.
Restricții și precizări
- șirul dat conține maximum 255 de caractere
- dacă există mai multe cuvinte cu toate literele distincte de lungime maximă se va afișa cel mai din stânga
Exemplul 1
- Intrare
- abcabcd abcdef ab
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- abcdef
Exemplul 2
- Intrare
- 547545//4/32
- Ieșire
- Datele introduse nu corespund restricțiilor impuse.
Rezolvare
# 2738 Dist Lung Max
def verificare(verificare_date):
# Verificăm dacă șirul conține cel mult 255 de caractere
if len(verificare_date) <= 255:
# Verificăm dacă șirul conține doar litere mici ale alfabetului englez și spații
if not all(c.islower() or c.isspace() for c in verificare_date):
# Dacă șirul conține alte caractere, ridicăm o excepție
raise ValueError
# Dacă șirul este valid, îl returnăm
return verificare_date
else:
# Dacă șirul nu este valid, ridicăm o excepție
raise ValueError
# Funcția cel_mai_lung_cuvant_cu_litere_distincte determină cel mai lung cuvânt cu litere distincte din șir
def cel_mai_lung_cuvant_cu_litere_distincte(s_lung):
cuvinte = s_lung.split()
lungime_maxima = -1
cuvant_maxim = ""
for cuvant in cuvinte:
if len(cuvant) == len(set(cuvant)):
if len(cuvant) > lungime_maxima:
lungime_maxima = len(cuvant)
cuvant_maxim = cuvant
return cuvant_maxim if cuvant_maxim else -1
if __name__ == "__main__":
try:
# Citim șirul de la utilizator
s = input("Introduceti sirul de caractere: ")
# Validăm șirul
s = verificare(s)
# Dacă șirul este valid, determinăm cel mai lung cuvânt cu litere distincte și afișăm rezultatul
print("Datele introduse corespund restricțiilor impuse.")
print(cel_mai_lung_cuvant_cu_litere_distincte(s))
except ValueError:
# Dacă șirul nu este valid, afișăm un singur mesaj de eroare
print("Datele introduse nu corespund restricțiilor impuse..")