您的位置:首页 > 其它

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

2011-06-17 18:03 316 查看
#include <iostream>

using namespace std;

char str[] = "abaccdeff";

const int size = 26;
int hashTable[26];

void FindFirstOne(char *str)
{
char* pStr = str;
while(*pStr != '/0') {
hashTable[*pStr - 'a']++;
pStr++;
}
pStr = str;
while(*pStr != '/0') {
if(hashTable[*pStr - 'a'] == 1) {
cout << "first one is: " << *pStr << endl;
break;
}
pStr++;
}
}

void main()
{
FindFirstOne(str);
}


上述算法不能包含其他字符,更新如下:

int findFirstChar(const char *array, int len)
{
for (int i = 0; i < size; i++)
hashBuff[i] = 0;

for (int i = 0; i < len; i++)
{
hashBuff[array[i]]++;
}

for (int i = 0; i < len; i++)
{
if (hashBuff[array[i]] == 1)
return i;
}

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