给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
示例:s = "leetcode"返回 0s = "loveleetcode"返回 2
方法一
/** * @param {string} s * @return {number} */var firstUniqChar = function(s) { var map = new Map() for(let i=0;i<s.length;i++){ if(map.has(s[i])){ map.set(s[i],map.get(s[i])+1) }else{ map.set(s[i],1) } } for(let i=0;i<s.length;i++){ if(map.get(s[i])===1){ return i } } return -1};
方法二
var firstUniqChar = function(s) { let r = new Set() i = -1 while(++i < s.length) if (r.has(s[i]) === false) if (i === s.lastIndexOf(s[i])) return i else r.add(s[i]) return -1};
方法三
var firstUniqChar = function(s) { for(let i = 0; i < s.length; i++) if (s.indexOf(s[i]) === s.lastIndexOf(s[i])) return i return -1};