题目:定义一个函数,删除字符串中所有重复出现的字符。例如输入“google”,删除重复字符之后的结果是”gole”.
这道题和前两篇博客中的题解法类似,都是运用哈希表的性质
第一个只出现一次的字符
从第一个字符串中删除第二个字符串中出现的所有字符
同样的思想,把字符串中的字符都映射到哈希表中,出现一次即次数+1,那么我们就只需让次数为1的字符在原字符串中即可。
char* DelRepeat(char *str)
{
char hashtable[256] = {0};
int len = strlen(str);
char* p = str;
int index = 0;
while (*p != '\0')
{
if (hashtable[*p] == 0)
{
hashtable[*p]++;
str[index++] = *p;
}
p++;
}
str[index] = '\0';
return str;
}
int main()
{
char str[] = "google";
char* ret = DelRepeat(str);
cout << ret << endl;
system("pause");
return 0;
}