icatalin

Laborator-3-Problema-cu-stiva.txt

Jan 5th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.00 KB | None | 0 0
  1. #include <iostream>
  2. #include <stack>
  3. using namespace std;
  4. //Se da un sir de caractere si un numar intreg k. Sa se stearga, daca exista, k aparitii consecutive ale oricarui caracter din sir.
  5. struct Pair
  6. {
  7.     char element; //elementul din string
  8.     int pozitie; //al catelea element este dintr-un sir consecutiv
  9. };
  10.  
  11. int main()
  12. {
  13.     string str; int k;
  14.     cout<<"String-ul este: "; cin >> str;
  15.     cout<<"k = "; cin >> k;
  16.  
  17.     stack<Pair> myStack;
  18.     int size = str.size();
  19.     for(int i = 0; i < size; i++)
  20.     {
  21.         Pair ob;
  22.         ob.element = str.at(i);
  23.         ob.pozitie = 1;
  24.         if( !myStack.empty() && myStack.top().element == ob.element)
  25.             ob.pozitie = myStack.top().pozitie + 1;
  26.         if(ob.pozitie == k)
  27.         {
  28.             for(int i = 0; i < k-1; i++)
  29.                 myStack.pop();
  30.         }
  31.         else myStack.push(ob);
  32.     }
  33.     while( !myStack.empty())
  34.     {
  35.         cout << myStack.top().element;
  36.         myStack.pop();
  37.     }
  38.     return 0;
  39. }
Add Comment
Please, Sign In to add comment