最长不重复子串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package main

import (
"fmt "
)

func (str string) int {
start := 0
maxlen := 0
lastO := make(map[rune]int)
for i, v := range []rune(str) {
if lastI, ok := lastO[v]; ok {
start = lastI + 1
}
if (i-start+1 > maxlen) {
maxlen = i - start + 1
}
lastO[v] = i
}
return maxlen
}

func main() {

//s:= "Yes哈哈哈! "
fmt.Println(maxLen( "abcbcdef "))
fmt.Println(maxLen( "abcdef "))
fmt.Println(maxLen( "aaaaaaa "))
fmt.Println(maxLen( "你说什么 "))
}