《劍指offer》刷題筆記塞茅。如有更好解法,歡迎留言季率。
關(guān)鍵字:字典
字符串
題目描述:
在一個字符串(0<=字符串長度<=10000野瘦,全部由字母組成)中找到第一個只出現(xiàn)一次的字符,并返回它的位置, 如果沒有則返回 -1(需要區(qū)分大小寫)
思路:
- 第一次遍歷,使用map構(gòu)建字典(記錄 a-z A-Z出現(xiàn)次數(shù))
- 第二次遍歷飒泻,找出第一個出現(xiàn)一次的字符鞭光。
- 完整代碼
function FirstNotRepeatingChar(str)
{
let map = new Map();
for(let i = 0;i < str.length;i++){
if(!map.has(str[i])){
map.set(str[i],1);
}else{
map.set(str[i],map.get(str[i])+1);
}
};
for(let j = 0;j < str.length;j++){
if(map.get(str[j]) === 1){
return j;
}
}
return -1;
}