leetcode 字符串中的第一个唯一字符
Posted sbzy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 字符串中的第一个唯一字符相关的知识,希望对你有一定的参考价值。
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
案例:
s = "leetcode"
返回 0.
s = "loveleetcode",
返回 2.
注意事项:您可以假定该字符串只包含小写字母。
/**
* @param {string} s
* @return {number}
*/
var firstUniqChar = function (s) {
let len = s.length, obj = {};
for (let i = 0; i !== len; i++) {
if (obj[s[i]] === undefined) {
obj[s[i]] = 0;
} else {
obj[s[i]]++;
}
}
for (let key of Object.keys(obj)) {
if (obj[key] === 0) {
return s.indexOf(key);
}
}
return -1;
};
我又想了好久,明明看上去好像是个比较简单的问题…
然后看一眼大佬的解法,牛皮
/**
* @param {string} s
* @return {number}
*/
var firstUniqChar = function(s) {
for (var i = 0; i < s.length; i++) {
if (s.indexOf(s[i]) == i && s.indexOf(s[i], i + 1) == -1) {
return i;
}
}
return -1;
};
以上是关于leetcode 字符串中的第一个唯一字符的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 哈希表 387. 字符串中的第一个唯一字符(计数哈希表,字符串)
《LeetCode之每日一题》:281.字符串中的第一个唯一字符