1.題目描述
在一個字符串(0<=字符串長度<=10000,全部由字母組成)中找到第一個只出現一次的字符,並返回它的位置, 如果沒有則返回 -1(需要區分大小寫).
2.問題分析
- 第一次遍歷,統計每個字符串出現的次數;
- 第二次遍歷,如果有那個字符出現次數爲1,則返回該字符的位置,反之返回-1.
3.源代碼
int FirstNotRepeatingChar(string str)
{
int size = str.size();
int times[256]={0};
for(int i = 0; i < size; ++i)
{
++times[str[i]];
}
for(int i = 0; i < size; ++i)
{
if(times[str[i]] == 1)
return i;
}
return -1;
}