劍指offer 48 最長不含重複字元的子字串

2021-10-10 02:38:37 字數 503 閱讀 6116

題目出處:leetcode 劍指offer 48:最長不含重複字元的子字串

這道題和leetcode 3:無重複字元的最長子串相同。

請從字串中找出乙個最長的不包含重複字元的子字串,計算該最長子字串的長度。曾經面試農業銀行,二面出了這道題。

如果採用暴力的方法,首先乙個長度為n的字串,它的子串有n(n+1)/2個,複雜度為o(n2),判斷長度為n的字串是否有重複字元需要遍歷一遍,複雜度為o(n),那麼總的時間複雜度為o(n3)。可以使用動態規劃。

class

solution

temp = temp < j-i ? temp +

1: j - i;

res = math.

max(res, temp)

; map.

put(s.

charat

(j), j);}

return res;

}}

劍指offer 48 最長不含重複字元的子字串

請從字串中找出乙個最長的不包含重複字元的子字串,計算該最長子字串的長度。定義函式f i 表示以第i個字元為結尾的不包含重複字元的子字串的最大長度。下面以第i個字元之前有沒有出現過重複字元分為兩種情況討論。如果第i個字元之前沒有出現過重複字元,即f f i 1 1。在字串 dhabcacfh 中,顯然...

劍指offer48 最長不含重複字元的子字串

輸入乙個字串 只包含 a z 的字元 求其最長不含重複字元的子字串的長度。例如對於 arabcacfr,最長不含重複字元的子字串為 acfr,長度為 4。方法1 暴力法 判斷乙個字串是否重複 def repeatstring str for i in range len str 1 for j in...

劍指offer(48) 最長不重複字元子串

題目描述 請從字串中找出乙個最長的不包含重複字元的子字串,計算該最長子字串的長度。思路分析 滑動視窗雙指標 1.初始化頭尾指標 head,tail 2.tail 指標右移,判斷 tail 指向的元素是否在 head tail 的視窗內 3.返回視窗長度的最大值。def lengthoflongest...