Files
codekata-golang/20201225/main.go
2020-12-25 08:59:25 +08:00

74 lines
1.0 KiB
Go

package main
import (
"fmt"
"strings"
)
func main() {
fmt.Println(strings.Trim("Bob hit a ball, the hit BALL flew far after it was hit.", ",."))
}
func maxCountWord(s, ban string) string {
s = strings.ToLower(s)
sb := strings.Builder{}
for _, cn := range s {
c := byte(cn)
if isAlphabet(c) || c == ' ' {
sb.WriteByte(c)
}
}
ws := strings.Split(sb.String(), " ")
m := make(map[string]int)
for _, w := range ws {
if w == ban {
continue
}
m[w]++
}
max := 0
w := ""
for k, v := range m {
if v > max {
max = v
w = k
}
}
return w
}
func maxCountWord2(s, ban string) string {
m := make(map[string]int)
s = strings.ToLower(s)
sb := strings.Builder{}
for _, cn := range s {
c := byte(cn)
if isAlphabet(c) {
sb.WriteByte(c)
continue
}
if c == ' ' {
word := sb.String()
if word != ban {
m[word]++
}
sb = strings.Builder{}
continue
}
}
max := 0
w := ""
for k, v := range m {
if v > max {
max = v
w = k
}
}
return w
}
func isAlphabet(c byte) bool {
return c >= 'a' && c <= 'z'
}