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个子集长度相同

 

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

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM