2659 - Split Text: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: == Cerința == Să se scrie funcția cu următorul antet: SplitText(propozitie) Funcția primește ca parametri: * un șir de caractere <code>propozitie</code> de lungime maximă <code>200</code>. Șirul <code>propozitie</code> 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 co...
Tag: visualeditor
 
mNo edit summary
Tag: visualeditor
 
Line 25: Line 25:


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


== Exemplul 2 ==
== Exemplul 2 ==

Latest revision as of 06:26, 11 December 2023

Cerința[edit]

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]

  • 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]

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]

Input:

O suta de ani ... de Romaniaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!

Output consola:

Propoziția nu respectă toate condițiile.

Rezolvare[edit]

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