meibin08 / free-programming-books

📚码农周报 免费的编程书籍,leetcode(力扣)题解、前端算法题,牛客网前端大厂面试题题解、提升工作效率的常用工具等📈🎉
https://susouth.com/
424 stars 60 forks source link

String-解题: 字符串中的第一个唯一字符(NO.387) #75

Open meibin08 opened 4 years ago

meibin08 commented 4 years ago

给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。

面试进阶题库

原题链接:力扣(LeetCode)387. 字符串中的第一个唯一字符

meibin08 commented 4 years ago

解题思路

代码

/**
 * @param {string} s
 * @return {number}
 */
var firstUniqChar = function(s) {
  let num = 0;

  while(num<s.length){
    let nextNum = num +1;
    let startIndex = s.indexOf(s[num]);
    let endIndex = s.lastIndexOf(s[num]);
    if(endIndex == startIndex){

      return num;
    };
    num++;
  }
  return -1;
};

Js中文网,一个致力于帮助开发者用代码改变世界为使命的平台,在这里每天都能找到技术世界的头条内容,包括:前端、大厂面试题、typescript教程、小程序、Javascript、Java等内容。目前已经覆盖超过 300 万开发者,同时还有面试题系列、前端进阶专栏文章等。即便你是 GitHub、StackOverflow、开源中国、掘金的用户,我们相信你也可以在这里有所收获,欢迎热爱技术的你加入交流与学习

meibin08 commented 4 years ago
var firstUniqChar = function(s) {

  for(let i=0;i<s.length;i++){
    //let reg = s.match(new RegExp(s[i],'gi'))||[]; 方法1
    let newStr = (""+s).replace(s[i],"");  
    let reg = newStr.includes(s[i]); //方法2
    if(reg == 0){
      return i;
    }
  };

  return -1;
};