2738 - Dist Lung Max: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: == 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...
 
No edit summary
 
Line 8: Line 8:
* șirul dat conține maximum '''255''' de caractere
* ș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
* dacă există mai multe cuvinte cu toate literele distincte de lungime maximă se va afișa cel mai din stânga
== Exemplu ==
== Exemplul 1 ==
; Intrare
; Intrare
: abcabcd abcdef ab
: abcabcd abcdef ab
; Ieșire
; Ieșire
: Datele introduse corespund restricțiilor impuse.
: abcdef
: abcdef
<br>
== Exemplul 2 ==
; Intrare
: 547545//4/32
; Ieșire
: Datele introduse nu corespund restricțiilor impuse.
<br>
== Rezolvare ==
== Rezolvare ==
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
def cel_mai_lung_cuvant_cu_litere_distincte():
# 2738  Dist Lung Max
     # Citim șirul de la tastatură
def verificare(verificare_date):
     s = input()
     # Verificăm dacă șirul conține cel mult 255 de caractere
     # Împărțim șirul în cuvinte
     if len(verificare_date) <= 255:
     cuvinte = s.split()
        # Verificăm dacă șirul conține doar litere mici ale alfabetului englez și spații
    # Inițializăm lungimea maximă și cuvântul maxim
        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
     lungime_maxima = -1
     cuvant_maxim = ""
     cuvant_maxim = ""
    # Parcurgem fiecare cuvânt
     for cuvant in cuvinte:
     for cuvant in cuvinte:
        # Verificăm dacă toate literele sunt distincte
         if len(cuvant) == len(set(cuvant)):
         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:
             if len(cuvant) > lungime_maxima:
                # Dacă este, actualizăm lungimea maximă și cuvântul maxim
                 lungime_maxima = len(cuvant)
                 lungime_maxima = len(cuvant)
                 cuvant_maxim = cuvant
                 cuvant_maxim = cuvant
    # Returnăm cuvântul maxim dacă există, altfel returnăm -1
     return cuvant_maxim if cuvant_maxim else -1
     return cuvant_maxim if cuvant_maxim else -1


print(cel_mai_lung_cuvant_cu_litere_distincte())


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>
</syntaxhighlight>

Latest revision as of 14:55, 12 November 2023

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>

  1. 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


  1. 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>