//在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。 分析:这道题是2006年google的一道笔试题。
/*采用哈希表,采用ASCII码,ASCII总共有128个,所以哈希表长度为128就行了*/
//这是采用的其他博主的代码,,,王道上也有相似的
#include<iostream>
#include<string>
#include<cstdio>
using namespace std;
#define HASHSIZE 128
int main()
{
int hashtable[HASHSIZE];
memset(hashtable,0,sizeof(hashtable));
string str="abaccdeff";
int i=0;
int pos=-1;
//第一次遍历,统计各个字符出现的次数
for(i=0;i<str.length();i++)
{
hashtable[str[i]]++;
}
//第二次遍历,找到第一个值为1的位置,输出即可
for(i=0;i<str.length();i++)
{
if(hashtable[str[i]]==1)
{
pos=i;
break;
}
}
cout<<str[pos]<<endl;
system("pause");
return 0;
}