題目描述
在一個(gè)字符串(0<=字符串長度<=10000,全部由字母組成)中找到第一個(gè)只出現(xiàn)一次的字符,并返回它的位置, 如果沒有則返回 -1(需要區(qū)分大小寫).
思路
建立一個(gè)<char,int>類型的map,先遍歷一次str,把每個(gè)字母存入map的key中观腊,每個(gè)字母出現(xiàn)的次數(shù)存入map的value中,然后在遍歷一遍str粪狼,如果能夠找到value為1的數(shù)據(jù)电抚,返回當(dāng)前str的下標(biāo),若沒有則返回-1.
class Solution {
public:
int FirstNotRepeatingChar(string str) {
map<char,int> mp;
for(int i=0;i < str.length();i++)
mp[str[i]]++;
for(int i = 0;i < str.length();i++)
{
if(mp[str[i]] == 1)
return i;
}
return -1;
}
};