Design an algorithm and write code to remove the duplicate characters in a string without using any additional buffer.NOTE: One or two additinal variables are fine. An extra copy of the array is not.
算法:
1,检查是否重复的字符被找出!
2,跳过重复的字符,更新不是重复的字符。
#include<iostream>
using namespace std;
void removedup(char str[10]);
void main()
{
char s[10]="abercobie";
for(int i=0;i<10;i++)
cout<<s[i];
removedup(s);
for(int i=0;i<10;i++)
cout<<s[i];
}
void removedup(char str[])
{
if(str==NULL) return;
int len=10;
if(len<2)return;
int i,j;
int tail=1;//用于记录所有unique的字符
for(i=1;i<len;i++)
{ for(j=0;j<tail;j++)
if(str[i]==str[j]) break;
if(j==tail)
{
str[tail]=str[i];
tail++;
}
}
str[tail]=0;
}