2659 - Split Text

De la Universitas MediaWiki

Cerința

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

  • 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

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

Input:

O suta de ani ... de Romaniaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!

Output consola:

Propoziția nu respectă toate condițiile.

Rezolvare

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