2659 - Split Text

From Bitnami MediaWiki
Revision as of 06:26, 11 December 2023 by Miawinator (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerința[edit | edit source]

Să se scrie funcția cu următorul antet:

SplitText(propozitie)

Funcția primește ca parametri:

  • un șir de caractere propozitie de lungime maximă 200.

Șirul propozitie memorează un text format din cuvinte și separatori. Cuvintele sunt formate din litere, iar restul caracterelor din text sunt separatori. Funcția va returna propoziția introdusă de la tastatură despărțită in cuvinte sau va afișa un mesaj corespunzător în cazul în care nu sunt respectate restricțiile impuse.

!!!Atenție: Problema este modificată față de cea de pe PbInfo ca să corespundă limbajului de programare Python.

Restricții și precizări[edit | edit source]

  • Lungimea maximă a șirului propozitie este 200
  • Șirul va conține cel puțin un cuvânt
  • Numărul maxim de cuvinte din text este 100
  • Cuvintele textului au lungimea maximă 29

Exemplul 1[edit | edit source]

Input:

O suta de ani ... de Romania!

Output consola:

['O', 'suta', 'de', 'ani', 'de', 'Romania']

Va furniza rezultatul: cuv[0]="O", cuv[1]="suta", cuv[2]="de", cuv[3]="ani", cuv[4]="de", cuv[5]="Romania".

Exemplul 2[edit | edit source]

Input:

O suta de ani ... de Romaniaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!

Output consola:

Propoziția nu respectă toate condițiile.

Rezolvare[edit | edit source]

<syntaxhighlight lang="python3" line="1"> def verifica_conditii(propozitie):

   # Verificăm dacă lungimea șirului este mai mică sau egală cu 200
   if len(propozitie) > 200:
       return False
   # Despartim șirul în cuvinte
   cuvinte = propozitie.split()
   # Verificăm dacă există cel puțin un cuvânt în șir
   if not cuvinte:
       return False
   # Verificăm numărul maxim de cuvinte în șir
   if len(cuvinte) > 100:
       return False
   # Verificăm lungimea maximă a cuvintelor
   if any(len(cuvant) > 29 for cuvant in cuvinte):
       return False
   # Dacă toate condițiile sunt îndeplinite, returnăm True
   return True

def SplitText(propozitie):

   # Verificăm condițiile
   if verifica_conditii(propozitie):
   # Filtram caracterele care nu sunt alfanumerice
       propozitie_filtrata = .join(caracter if caracter.isalnum() or caracter.isspace() else ' ' for caracter in propozitie)
   # Folosim metoda split() pentru a desparti propoziția filtrată în cuvinte
       cuvinte = propozitie_filtrata.split()
   # Afisăm rezultatul
       print("Cuvintele din propoziție sunt:", cuvinte)
   else:
       print("Propoziția nu respectă toate condițiile.")

SplitText(input("Introduceti propozitia: ")) </syntaxhighlight>