👤

Va rog ajutati-ma la problema asta cu c++ #519 pe pbinfoCerința
Se dă un vector x cu n elemente, numere naturale și un vector y cu m elemente, numere naturale. Să se verifice dacă vectorul y este secvență în vectorul x.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, elementele vectorului x, apoi numărul m, iar apoi m numere naturale, elementele vectorului y.

Date de ieșire
Programul va afișa pe ecran numărul p, reprezentând poziția din vectorul x de unde începe secvența y, dacă y este secvență în x, respectiv mesajul NU dacă y nu este secvență în x.


Răspuns :

Răspuns:

#include <iostream>

using namespace std;

int main()

{

   int n,m,a[1001], b[1001],ok;

   cin>>n;

   for(int i=1;i<=n;i++){

       cin>>a[i];

   }

   cin>>m;

   for(int i=1;i<=m;i++){

       cin>>b[i];

   }

   if(m>n){

       cout<<"NU";

       return 0;

   }

   for(int st=1;st<=n-m+1;st++){ ///st - poz din sirul a de unde pornesc

       ok=1;

       for(int i=1;i<=m;i++) ///potrivesc sirul b cu secv din A incepand de la poz st

       {

           if(a[st+i-1]!=b[i])

           {

               ok=0;

           }

       }

       if(ok==1){

           cout<<st;

           return 0;

       }

   }

   cout<<"NU";

   return 0;

}

Explicație:

Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, nu ezitați să ne contactați. Ne bucurăm să vă revedem și vă invităm să ne adăugați în lista de favorite!


Ze Schools: Alte intrebari