第一個(gè)只出現(xiàn)一次的字符
題目描述
在一個(gè)字符串(1<=字符串長(zhǎng)度<=10000梢莽,全部由大寫(xiě)字母組成)中找到第一個(gè)只出現(xiàn)一次的字符,并返回它的位置。
思路
- 新建一個(gè)對(duì)象,其中key用來(lái)存放字符,value用來(lái)存放該字符出現(xiàn)的次數(shù)柳爽;
- 第一次循環(huán),將所有字符和對(duì)應(yīng)出現(xiàn)的次數(shù)存放在map中碱屁,時(shí)間復(fù)雜度為0(n)磷脯;
- 第二次循環(huán)找到value為1的字符所在的位置,并返回娩脾。
實(shí)現(xiàn)代碼
function FirstNotRepeatingChar(str) {
if (str.length == 0)
return -1;
var map = {};
for (var i = 0; i < str.length; i++) {
var charX = str[i]
if (!map[charX]) {
map[charX] = 1;
} else {
map[charX]++;
}
}
for (var i = 0; i < str.length; i++) {
var charY = str[i];
if (map[charY ] == 1)
return i;
}
}