题目:我现在有一个文件,把文件中出现单词频率最高的k个单词找出来,文件内容都是逗号分隔的单词
我用go语言写
abc.txt内容 "wang,jing,yu,shuai,ge,shuai,ge,j"
package main import ( "fmt" "io/ioutil" "sort" "strings" ) func main() { contents, err := ioutil.ReadFile("D:\\test1\\topK\\abc.txt") if err != nil { fmt.Println("无法读取文件:", err) return } else { fmt.Printf("%s\n", contents) } k := 2 words := strings.Split(string(contents), ",") // 存放map,频率 pl := make(map[string]int, 0) for _, v := range words { pl[v]++ } // 去重后数组 qcWords := []string{} for k, _ := range pl { qcWords = append(qcWords, k) } sort.Slice(qcWords, func(i, j int) bool { return pl[qcWords[i]] > pl[qcWords[j]] }) for i := 0; i < len(pl) && i < k; i++ { fmt.Printf("%v,%v", qcWords[i], pl[qcWords[i]]) } }
到此结束
考察点:
别的方案: