leetcode-409 最长回文串


&此题不难,使用map即可

409. 最长回文串

难度: 简单

409. 最长回文串(哈希表,清晰图解)

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package main

import "fmt"

func main() {

var s = "aaabbbccdde" // 2 + 2 + 2 +2 +1 = 9
fmt.Println(1 / 2)
fmt.Println(2 / 2)
fmt.Println(3 / 2)

fmt.Println(1 % 2)
fmt.Println(2 % 2)
fmt.Println(3 % 2)
fmt.Println(4 % 2)

longestPalindrome(s)

}

func longestPalindrome(s string) int {

var m = map[string]int{}

for _, val := range s {
m[string(val)] += 1
}

fmt.Println(m)

var odd int
var res int

for _, cnt := range m {
if cnt%2 == 0 {
res += cnt
} else {
res += cnt - 1
odd = 1 // 这样就不用下面这样,再循环一遍了
}
}

//for _, cnt := range m {
// if cnt%2 == 0 {
// } else {
// odd = 1
// break
// }
//}

return res + odd
}

文章目录