387.字符串中的第一个唯一字符
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
示例:
s = "leetcode"
返回 0
s = "loveleetcode"
返回 2
提示:你可以假定该字符串只包含小写字母。
解法
1、有点 low,但是能用
/**
* @param {string} s
* @return {number}
*/
var firstUniqChar = function (s) {
const temp = {};
let i = 0;
while (i < s.length) {
if (temp[s[i]]) {
temp[s[i]] += 1;
} else {
temp[s[i]] = 1;
}
i++;
}
for (let j = 0; j < s.length; j++) {
if (temp[s[j]] === 1) {
return j;
}
}
return -1;
};
2、indexOf and lastIndexOf
/**
* @param {string} s
* @return {number}
*/
var firstUniqChar = function (s) {
let i = 0;
while (i < s.length) {
if (s.indexOf(s[i]) === s.lastIndexOf(s[i])) {
return i;
}
i++;
}
return -1;
};