题目:找一个字符串第一次只出现一次的字符,返回其下标。
分析:将每个字符的ASCII码值作为下标建立一个count数组,即如果这个字符出现一次,count数组以该字符的ASCII码作为下标的的元素值加1即用count数组记录每个字符出现的次数,最后从头到尾扫描字符串,只要哪一个字符,它的ASCII码作为count数组下标对于元素值为1的话,说明这个字符是第一个出现一次的字符。
int first_unique_char(string s)
{
if (s.empty())
return -1;
int size = s.size();
int count[256] = {0};
//初始化count数组
for (int i = 0; i < size; i++)
{
count[s[i]]++;
}
//找第一个只有一次的字符
for (int i = 0; i < size; i++)
{
if (count[s[i]]==1)
{
return i;
}
}
//来到这说明没找到
return -1;
}