Subscribe Us

Responsive Advertisement

Advertisement

Basic Run Length Encoding and Decoding using C++


#include<bits/stdc++.h>
using namespace std;
vector<int>v;
string encode;
void encoding(string &s)
{
     int n=s.size();
     int i=0;
     char temp=s[i];
     int cnt=1;
     while (i<n)
     {
        if(i==n-1)
        {
            v.push_back(cnt);
            encode+=temp;
            break;

        }
        if(s[i]==s[i+1])
        {
             cnt++;
           
           

        }
        else
        {

            v.push_back(cnt);
            encode+=temp;
            cnt=1;
            temp=s[i+1];


        }
        i++;
     }
     
}
void decoding()
{
    for (int i = 0; i < encode.size(); i++)
    {
        for(int j=0;j<v[i];j++)
        {
             cout<<encode[i];
        }
    }
    cout<<endl;
   
}
int main()
{


    string s;
    cout<<"enter your string"<<endl;
    cin>>s;
    encoding(s);

    for(int i=0;i<v.size();i++)
    {
         cout<<v[i]<<encode[i];
    }

    cout<<endl;

    decoding();


    return 0;
}

Post a Comment

0 Comments