char *encode(char *src) { //Your code here int length = strlen(src); char *res=(char *)malloc(sizeof(char) * length); int a[5]; int idx=0; int cnt=1,n,pos; res[idx]=src[0]; for(int i=1;i<strlen(src);i++) { if(src[i]!=src[i-1]) { n=cnt; if(n>=10) { pos=-1; while(n) { pos+=1; a[pos]=n%10; n/=10; } while(pos>=0) { idx+=1; res[idx]=char(a[pos--]+'0'); } } else { idx+=1; res[idx]=char(cnt+'0'); } idx+=1; res[idx]=src[i]; cnt=1; } else { cnt+=1; } } if(cnt>=10) { pos=-1; while(cnt) { pos+=1; a[pos]=cnt%10; cnt/=10; } while(pos>=0) { idx+=1; res[idx]=char(a[pos--]+'0'); } } else { idx+=1; res[idx]=char(cnt+'0'); } res[idx+1]='\0'; return res; }