題目出處: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...