Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <stack>
- #define ulti_pos sin_usar.top() ///pos de la ultima letra guardada
- #define ulti_let cadena[ulti_pos] ///la ultima letra guardada
- using namespace std;
- string conecta ( const string cadena, vector<int> &pares )
- {
- stack<int> sin_usar; ///para guardar los sin_usaros de las letras sin usar;
- string reduced; ///para guardar las letras sin usar;
- int c=0;
- for (int i=0; i<cadena.size(); i++) /// corregi el size
- {
- char letra = cadena[i];
- if ( (reduced.size())&& (ulti_let==letra) ) ///(si hay ulti_let) y esa es igua a la letra... se cancelan
- {
- c++;
- pares.push_back(ulti_pos);
- pares.push_back(i);
- sin_usar.pop();
- reduced.pop_back(); /// corregi, ahora reduce
- }
- else
- {
- sin_usar.push(i);
- reduced.push_back( letra ); /// corregi, ahora reduce
- }
- }
- if (!reduced.size()) /// corregi, ahora reduce
- reduced = "Empty String";
- return reduced; /// corregi, ahora reduce
- }
- int main()
- {
- string cadena;
- vector<int> pares;
- cin>>cadena;
- cout<<conecta(cadena, pares);
- /*cout<<endl;
- for (int i=0; i<pares.size(); i+=2)
- cout<<1+pares[i]<<" "<<1+pares[i+1]<<endl;*/
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment