给定一个字符串 s ,请你找出其中不含有重复字符的 最长连续子字符串 的长度。
package main
import "fmt"
func lengthOfLongestSubstring(s string) int {
m := make(map[string]int)
start := 0
maxLength := 0
maxStartPos := 0
maxEndPos := 0
for i, char := range s {
// fmt.Println(string(char))
if j, exists := m[string(char)]; exists && j >= start {
start = j + 1
}
m[string(char)] = i
if i-start+1 > maxLength {
maxLength = i - start + 1
maxStartPos = start
maxEndPos = i + 1
}
}
fmt.Println("max length string :", s[maxStartPos:maxEndPos])
return maxLength
}
func main() {
str := "pwwkew"
fmt.Println(lengthOfLongestSubstring(str)) // 输出应为 3
}