码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode 字符串中的第一个唯一字符

时间:2018-07-28 19:35:49      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:fun   index   cti   for   undefined   let   asc   func   ++   

给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -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 字符串中的第一个唯一字符

标签:fun   index   cti   for   undefined   let   asc   func   ++   

原文地址:https://www.cnblogs.com/sbzy/p/9383057.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!