1752 - nr aparitii rec

From Bitnami MediaWiki
Revision as of 22:19, 21 March 2023 by Catalin Moje (talk | contribs) (Pagină nouă: ==Cerința== Scrieţi în limbajul Python definiţia completă a funcţiei recursive nr_aparitii cu următorul antet: unsigned nr_aparitii(char *sir, char *secventa) ce returnează numărul de apariţii ale şirului de caractere secventa în şirul sir. ==Date de intrare== Se va introduce de la tastatură un număr natural care va fi transmis ca perimetru ==Date de ieșire== Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse." În cazul în c...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerința

Scrieţi în limbajul Python definiţia completă a funcţiei recursive nr_aparitii cu următorul antet:

unsigned nr_aparitii(char *sir, char *secventa) ce returnează numărul de apariţii ale şirului de caractere secventa în şirul sir.

Date de intrare

Se va introduce de la tastatură un număr natural care va fi transmis ca perimetru

Date de ieșire

Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse." În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Datele de intrare nu corespund restricțiilor impuse.".

Restricții și precizări

cele două şiruri nu conţin spaţii şi au cel mult 1000 de caractere biblioteca cstring (string.h) este deja inclusă la verificare

Exemplu

nr_aparitii("maimuta_samurai", "mu") = 2

Rezolvare

def nr_aparitii(sir, secventa):
   # Verifică dacă datele de intrare corespund restricțiilor impuse
   if len(sir) > 1000 or len(secventa) > 1000:
       print("Datele de intrare nu corespund restricțiilor impuse.")
       return None   
   # Caz de bază
   if len(sir) < len(secventa):
       return 0
   # Cazul general
   if sir[:len(secventa)] == secventa:
       return 1 + nr_aparitii(sir[len(secventa):], secventa)
   else:
       return nr_aparitii(sir[1:], secventa)    
# Exemplu de utilizare
print(nr_aparitii("maimuta_samurai", "mu"))  # afișează 2