題解 1:
維持乙個滑動視窗來做比較,初始時使左右邊界指標從 0 出發,並維護乙個 【字元】 => 【位置】 的 map。
首先右指標向前走,判斷當前字元是否在 map 中,存在則判斷 map 值是否在視窗內,存在左指標前移,否則右指標前移並更新 map 中的值。字元不存在則存在 map 中。 耗時 0 ms
package main
import (
"fmt"
"strings"
)func main()
func getlongstr(s string) int else if r < slen else
} else
if (r - l) > res
"i=%v res=%v ok=%v l=%v r=%v\n", i, res, ok, l, r)
} return res
}
題解 2:
維持乙個 map ,保持最新字元出現的位置,耗時 4 ms
3 無重複字元的最長子串
給定乙個字串,找出不含有重複字元的最長子串的長度。示例 給定 abcabcbb 沒有重複字元的最長子串是 abc 那麼長度就是3。給定 bbbbb 最長的子串就是 b 長度是1。給定 pwwkew 最長子串是 wke 長度是3。請注意答案必須是乙個子串,pwke 是 子串行 而不是子串。思路 用 i...
3 無重複字元的最長子串
給定乙個字串,找出不含有重複字元的最長子串的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 無重複字元的最長子串是 abc 其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 無重複字元的最長子串是 b 其長度為 1。示例 3 輸入 pwwkew 輸出 3 解釋 無重複字元的最長子串是...
3 無重複字元的最長子串
給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。示例 1 輸入 abcabcbb 輸出 3解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew 輸出 3解釋 因為...