第一個只出現(xiàn)一次的字符
題目描述
在一個字符串(1<=字符串長度<=10000,全部由大寫字母組成)中找到第一個只出現(xiàn)一次的字符,并返回它的位置。
思路
- 新建一個對象,其中key用來存放字符,value用來存放該字符出現(xiàn)的次數(shù);
- 第一次循環(huán),將所有字符和對應出現(xiàn)的次數(shù)存放在map中,時間復雜度為0(n);
- 第二次循環(huán)找到value為1的字符所在的位置,并返回。
實現(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;
}
}