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..")