删除字符串中重复字符

时间:2022-11-29 22:16:34

只需遍历字符串一次,时间复杂度为O(n)。


代码如下: 

void erase_repeat_char(char *s)  
{
assert(s != NULL);
char chartable[256] = {0};
string str(s);
int i = 0;
while(i < str.length())
{
if(chartable[str[i]] != 0)//删除重复字符
{
str.erase(i,1);
}
else
{
chartable[str[i]] = 1;//记录此字符已经出现
i++;
}
}
strcpy(s,str.c_str());
}