// 面试题50(一):字符串中第一个只出现一次的字符
// 题目:在字符串中找出第一个只出现一次的字符。如输入"abaccdeff",则输出'b'。
static char first_no_rep_char(const std::string& str)
{
if(str.empty())
{
return '\0';
}
std::vector<int> hash(256, 0);
auto ptr = str.c_str();
while(*(ptr))
{
hash[*(ptr++)]++;
}
ptr = str.c_str();
while(*(ptr))
{
if(hash[*ptr] == 1)
{
return *ptr;
}
ptr++;
}
return '\0';
}