删除小写字母字符串中重复字符。比如,输入:bbcacdww;输出:bacdw。
void DeleteString(char* pstr)
{
if (pstr == NULL)
return;
//创建哈希表并初始化
char *pHash = pstr;
const int tablesize = 256;
int hashtable[tablesize];
for (int idx = 0; idx < tablesize; ++idx)
hashtable[idx] = 0;
//统计每个字符出现的次数
while (*pHash != '\0')
hashtable[*(pHash++)]++;
pHash = pstr;
int k = 0;
while (*pHash != '\0')
{
if (hashtable[*pHash])
{
pstr[k++] = *pHash;
pHash++;
if (hashtable[*pHash] > 1)
pHash++;
}
}
pstr[k] = 0;
}