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