2738 - Dist Lung Max
Cerinţa[edit | edit source]
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[edit | edit source]
Programul citește de la tastatură un șir de caractere.
Date de ieşire[edit | edit source]
Programul va afișa pe ecran cuvântul determinat sau -1, conform cerinței.
Restricții și precizări[edit | edit source]
- ș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[edit | edit source]
- Intrare
- abcabcd abcdef ab
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- abcdef
Exemplul 2[edit | edit source]
- Intrare
- 547545//4/32
- Ieșire
- Datele introduse nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line>
- 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..")
</syntaxhighlight>