Sunteți pe pagina 1din 1

Prelucrări pe segmente şi subşiruri de elemente dintr-un

vector
1. Se dă un şir de numere. Găsiţi un subşir de lungime maximă care începe şi se sfârşeşte cu acelaşi
număr.
Exemplu. Pentru vectorul (57,55,24,9,50,74,3,98,4,86,48,75, 88,86,29,88,16,82) secvenţa cerută este
(86,48,75,88,86).

2. Fie v un vector format din n numere întregi, n<=100. Să se afişeze suma maximă ce se poate obţine din
oricâte valori consecutive din vectorul v, precum şi poziţia de început şi lungimea secvenţei din care se
obţine.

3. Se dau două şiruri de numere întregi x cu nx elemente şi y cu ny elemente, unde nx>ny. Să se decidă
dacă y este un subşir al lui x, adică dacă există un număr k astfel încât xk=y1, xk+1=y2 ... xk+ny-1=yny
Exemplu, Dacă x= (2,7,3,9,10,4,5,8,6,1,9) atunci şirul y= (9,10,4) este subşir al lui x dar y= (4,5,6,9) nu este
subşir al lui x.

4. Definim noţiunea de pantă ca fiind o secvenţă de elemente consecutive din vectorul a astfel încât
a[i]=a[i-1]+1. Să se determine panta de lungime maximă.
Exemplu.
În vectorul (1,2,3,8,6,7,10,11,12,13,3,1,4,5) panta de lungima maximă este (10, 11,12,13).

5. Se dă un vector de numere întregi. Se cere să se afişeze subsecventa palindromică de lungime maximă,


(elementele subsecventei sunt elemente consecutive în vector).
Exemplu:
Dacă vectorul dat este (1,12,31,12,1,5,13,27,4,4,27,13, 9,26,9,13,27,4) atunci secvenţa palindromică de
lungima maximă este (4,27,13,9,26,9,13,27,4).

6. Fie un tablou a : array[0..n - 1] cu elemente de tip întreg cu proprietatea a[0] <= a[1] <= ... <= a[n - 1].
Un platou este o subsecventă maximală de elemente consecutive în tablou care conţin aceeaşi valoare.
Lungimea unui platou este numărul de elemente ce compun platoul. Să se scrie un program care afişează
lungimea p a celui mai lung platou.
Exemplu.
Pentru a= (2, 4, 4, 4, 5, 6, 8, 8, 8, 8, 9, 9, 10, 14, 14, 15, 16, 16, 16, 17) cel mai lung platou începe în
poziţia 7 şi are lungimea 4.

7. Pentru un vector x de n numere întregi dat, să se afişeze o secvenţă (dacă există) de elemente
consecutive din vector pentru care suma elementelor se divide cu n.
Exemplu.
Pentru vectorul (89,54,4,63,96,17,98,6,55,60) cea mai lungă secvenţă care îndeplineşte condiţia cerută
este (63,96,17,98,6).

8. Se dau doi vectori a cu m componente şi b cu n componente (n>m). Componentele ce formează


vectorul a sunt distincte două câte două. Să se scrie un program care să verifice dacă toate componentele
vectorului a luate în orice ordine se găsesc în vectorul b pe poziţii consecutive. Dacă testul este reuşit să se
afişeze fiecare poziţie din vectorul b unde începe secvenţa de elemente din A.
Exemplu.
Dacă a= (3,4,5,6) şi b= (2,5,6,4,3,9,3,12) atunci vectorul a se găseşte în b începând cu poziţia 2.

S-ar putea să vă placă și