第七十七天:力扣387题,字符串中的第一个唯一字符
地址:leetcode-cn.com/problems/fi…
思路:用lastIndexOf来判断此后是否唯一,用set来判断此前是否唯一。
var firstUniqChar = function(s) {
const m = s.length;
let set = new Set();
for(let i = 0; i < m ; i++)
{
if(s.lastIndexOf(s[i]) === i && !set.has(s[i]))//两个索引值相同说明此后唯一,set中has不存在说明此前唯一
{
return i;
}
set.add(s[i]);
}
return -1
};
执行用时:124 ms, 在所有 JavaScript 提交中击败了65.29%的用户
内存消耗:41.4 MB, 在所有 JavaScript 提交中击败了34.01%的用户
后来看看,好像想多了
var firstUniqChar = function(s) {
const m = s.length;
for(let i = 0; i < m ; i++)
{
if(s.lastIndexOf(s[i]) === s.indexOf(s[i]))
{
return i;
}
}
return -1
};
执行用时:116 ms, 在所有 JavaScript 提交中击败了81.25%的用户
内存消耗:41.2 MB, 在所有 JavaScript 提交中击败了49.21%的用户