1. 程式人生 > 實用技巧 >力扣(LeetCode)第3題,javascript 實現無重複字元的最長子串

力扣(LeetCode)第3題,javascript 實現無重複字元的最長子串

本人掘金文章

LeetCode 第一天,我對自己說每天刷1-3題(純自己解決,不百度), 就是不知道能不能做到 ........ QAQ

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個子集長度相同

這個方案肯的不是最優解;但作為實現這個已經可以滿足了, 歡迎留言其他解法

目前我沒發現問題, 有問題歡迎留言共同學習