1.题目描述
练习:map
实现 WordCount。它应当返回一个含有 s 中每个 “词” 个数的 map。函数 wc.Test 针对这个函数执行一个测试用例,并输出成功还是失败。
你会发现 strings.Fields 很有帮助。
1.给出的示例
package main
import (
"golang.org/x/tour/wc"
)
func WordCount(s string) map[string]int {
return map[string]int{"x": 1}
}
func main() {
wc.Test(WordCount)
}
2.解答
package main
import (
"fmt"
"strings"
)
func main() {
s := "I love my work and I"
res := WordCount(s)
fmt.Println(res)
}
func WordCount(s string) map[string]int {
// strings.Fields 以空格分隔字符串,返回[]string
s_arr := strings.Fields(s) //分割字符串为字符数组
s_map := make(map[string]int) //建立map
//对s_arr中的每个字符进行循环
for i := 0; i < len(s_arr); i++ {
if s_map[s_arr[i]] == 0 { //当还没有统计过该字符时,赋值为1
s_map[s_arr[i]] = 1
} else { //当统计过该字符时,更新计数值+1
s_map[s_arr[i]] = s_map[s_arr[i]] + 1
}
}
return s_map
}
3. 查看官网api说明


网友评论