Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stack>
- using namespace std;
- //Se da un sir de caractere si un numar intreg k. Sa se stearga, daca exista, k aparitii consecutive ale oricarui caracter din sir.
- struct Pair
- {
- char element; //elementul din string
- int pozitie; //al catelea element este dintr-un sir consecutiv
- };
- int main()
- {
- string str; int k;
- cout<<"String-ul este: "; cin >> str;
- cout<<"k = "; cin >> k;
- stack<Pair> myStack;
- int size = str.size();
- for(int i = 0; i < size; i++)
- {
- Pair ob;
- ob.element = str.at(i);
- ob.pozitie = 1;
- if( !myStack.empty() && myStack.top().element == ob.element)
- ob.pozitie = myStack.top().pozitie + 1;
- if(ob.pozitie == k)
- {
- for(int i = 0; i < k-1; i++)
- myStack.pop();
- }
- else myStack.push(ob);
- }
- while( !myStack.empty())
- {
- cout << myStack.top().element;
- myStack.pop();
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment