您的位置:首页 > 其它

在一个字符串中找到第一个只出现一次的字符

2016-06-04 15:46 323 查看
要想到用哈希表来解决问题

char FirstNotRepeatChar(char* pString)
{
if (!pString)
return '\0';

const int tableSize = 256;
int hashTable[tableSize] = { 0 }; //存入数组,并初始化为0

char* pHashKey = pString;
while (*(pHashKey) != '\0')
hashTable[*(pHashKey++)]++;//统计个数

while (*pString != '\0')
{
if (hashTable[*pString] == 1)
return *pString;

pString++;
}
return '\0';  //没有找到满足条件的字符,退出
}


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////`const int N = 26;

int bit_map
;

void findNoRepeat(char *src)

{

int pos;

char *str = src;

int i ,len = strlen(src);

//统计
for(i = 0 ; i < len ;i ++)
bit_map[str[i]-'a'] ++;

//从字符串开始遍历 其bit_map==1 那么就是结果
for(i = 0 ; i < len ; i ++)
{
if(bit_map[str[i]-'a'] == 1)
{
printf("%c",str[i]);
return ;
}
}


} `
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: