mourya.gudladona
BAN USERO(n) solution with 4 additional variables :
#include<stdio.h>
#include<string.h>
void removeDuplicates(char *);
void removeDuplicates(char *inp)
{
int i=0, j=0, REPEAT_STARTED=0, repeat_count=0;
while(inp[i]!='\0')
{
if(REPEAT_STARTED ==1)
{
inp[i-repeat]=inp[i];
}
if(j==(j | 1<<(inp[i]-'\0')))
{
repeat_count ++;
REPEAT_STARTED =1;
}
j= j | 1<<(inp[i]-'\0');
i++;
}
inp[i-repeat]='\0';
}
int main()
{
char inp[100] = "bananas";
/***** TEST CASES************
//char inp[100] = "abAABBcdbefdghicccc";
//char inp[100] = "ccccc";
//char inp[100] = "\0";
/**********************************
printf (" INPUT STRING : %s\n", inp);
removeDuplicates(inp);
printf (" OUTPUT STRING : %s:\n", inp);
return 1;
}
O(n) solution using bit-manipulation:
- mourya.gudladona September 11, 2016