AlenAntonelli

Reduced_String (Detallado++)

May 23rd, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.40 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <stack>
  4.  
  5. #define ulti_pos sin_usar.top() ///pos de la ultima letra guardada
  6. #define ulti_let cadena[ulti_pos] ///la ultima letra guardada
  7.  
  8. using namespace std;
  9.  
  10. string conecta ( const string cadena, vector<int> &pares )
  11. {
  12.     stack<int> sin_usar; ///para guardar los sin_usaros de las letras sin usar;
  13.     string reduced; ///para guardar las letras sin usar;
  14.     int c=0;
  15.    
  16.     for (int i=0; i<cadena.size(); i++) /// corregi el size
  17.     {
  18.         char letra = cadena[i];
  19.        
  20.         if ( (reduced.size())&& (ulti_let==letra) ) ///(si hay ulti_let) y esa es igua a la letra... se cancelan
  21.         {
  22.             c++;
  23.             pares.push_back(ulti_pos);
  24.             pares.push_back(i);
  25.            
  26.             sin_usar.pop();
  27.             reduced.pop_back(); /// corregi, ahora reduce
  28.         }
  29.         else
  30.         {
  31.             sin_usar.push(i);
  32.             reduced.push_back( letra ); /// corregi, ahora reduce
  33.         }
  34.     }
  35.    
  36.     if (!reduced.size()) /// corregi, ahora reduce
  37.         reduced = "Empty String";
  38.    
  39.     return reduced; /// corregi, ahora reduce
  40. }
  41.  
  42. int main()
  43. {
  44.     string cadena;
  45.     vector<int> pares;
  46.    
  47.     cin>>cadena;
  48.    
  49.     cout<<conecta(cadena, pares);
  50.     /*cout<<endl;
  51.     for (int i=0; i<pares.size(); i+=2)
  52.         cout<<1+pares[i]<<" "<<1+pares[i+1]<<endl;*/
  53.    
  54.     return 0;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment