Interview Questions

147. First remove all repeated consecutive substring with .......

Microsoft Interview Questions and Answers


(Continued from previous question...)

147. First remove all repeated consecutive substring with .......

Question:
First remove all repeated consecutive substring with
length 1, then delete substring of length 2 and so on...
Example : string is “abcabeccced”

After removing repeated substring of length 1:
“abcababceccced” --> “abcababceced” (2 'c' are removed)
After removing repeated substring of length 2:
“abcababceced” --> “abcabceced” (substring “ab” is removed) and so on...


maybe an answer:


void removeRepeat(char *s, int patternLength)
{
if(s && patternLength)
{
int strlength=strlen(s);

if(strlength>patternLength)
{
int tokenbegin=0;
int patterni=0;
int pos=0;
int newstringi=tokenbegin+patternLength;
int checki=tokenbegin + patternLength;

while(s[checki]!='\0')
{

if(s[checki+pos]==s[patterni+pos])
{
pos++;

if(pos==patternLength)
{
pos=0;
checki+=patternLength;
}

}
else
{
for(int i=pos;i>=0;--i)
s[newstringi++]=s[checki++];
patterni++;
pos=0;
}

if(checki>strlength)
break;

}

s[newstringi++]='\0';
}
}
}

int main(int argc, char *argv[])
{

char *c="abcababceccced";
char *cp=new char[1024];
strcpy(cp,c);
removeRepeat(cp,1);
printf("%s\n",cp);
removeRepeat(cp,2);
printf("%s\n",cp);
}

Output after 2 iterations:

abcababceced
abcabced

(Continued on next question...)

Other Interview Questions