Algorithm:
step 1: input string s, char *c
step 2: c = s;
step 3: foreach character *c, in the string s,
step 4: compare subsequent characters *p, if equal, inc counter till *p != *c
step 5: append c and count to enc_string
step 6: reset count to 1
step 7: make c = p;
step 8: end for
Program:
char* encode(char *s) {
char *c, *p; char enc[100]; int count = 1, i = 0;
if( s == NULL )
return NULL;
c = s;
while( *c ) {
if( !(*(c+1) ) { //end of string, append c and count
enc[i++] = c;
enc[i++] = count;
count = 1;
break;
}
p = c+1;
while( *p == *c ) {
p++;
count++;
}
enc[i++] = c;
enc[i++] = count;
count = 1;
c = p;
}
return enc;
}
No comments :
Post a Comment