javascript 实现无重复字符的最长子串

出处: 本人掘金文章

# javascript 实现无重复字符的最长子串

lengthOfLongestSubstring (s) {
  let str = ''
  let arr = []
  let target = []
​
  for (let i of s) {
    if (str.indexOf(i) < 0) {
      str += i
    } else {
      arr.push(str)
      str = i
    }
  }
  arr.push(str)
  // 排序
  arr.sort((a, b) => {
    return b.length - a.length
  })
  // 有几个子集长度相等的情况
  arr.forEach(list => {
    if (arr[0].length === list.length) {
      target.push(list)
    }
  })
  console.log(target)
}
​
// target 内容就是结果, 包含1或者n个子集长度相等的情况
lengthOfLongestSubstring("laijinxianzxcvbnm") // ["ianzxcvb"] 1个子集长度最长
lengthOfLongestSubstring("dsauhdahfufansdmn") // ["fansdm"] 1个子集长度最长
lengthOfLongestSubstring("laijinxianzxcvbnm") // ["qwert", "tyuio", "oasdf"] 3个子集长度相同

 

# 这个方案肯的不是最优解;但作为实现这个已经可以满足了, 欢迎留言其他解法

# 目前我没发现问题, 有问题欢迎留言共同学习

posted @ 2020-08-05 11:58  会写代码的赖先生  阅读(1729)  评论(1编辑  收藏  举报