2738 - Dist Lung Max
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
Exemplu
- Intrare
- abcabcd abcdef ab
- Ieșire
- abcdef
Rezolvare
<syntaxhighlight lang="python" line> def cel_mai_lung_cuvant_cu_litere_distincte():
# Citim șirul de la tastatură
s = input()
# Împărțim șirul în cuvinte
cuvinte = s.split()
# Inițializăm lungimea maximă și cuvântul maxim
lungime_maxima = -1
cuvant_maxim = ""
# Parcurgem fiecare cuvânt
for cuvant in cuvinte:
# Verificăm dacă toate literele sunt distincte
if len(cuvant) == len(set(cuvant)):
# Dacă sunt, verificăm dacă lungimea cuvântului este mai mare decât lungimea maximă
if len(cuvant) > lungime_maxima:
# Dacă este, actualizăm lungimea maximă și cuvântul maxim
lungime_maxima = len(cuvant)
cuvant_maxim = cuvant
# Returnăm cuvântul maxim dacă există, altfel returnăm -1
return cuvant_maxim if cuvant_maxim else -1
print(cel_mai_lung_cuvant_cu_litere_distincte())
</syntaxhighlight>