亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我在 golang tour #43 中的 word counter 不起作用?

為什么我在 golang tour #43 中的 word counter 不起作用?

Go
肥皂起泡泡 2021-07-27 21:08:37
我正在嘗試解決go tour #43 中的難題,但我不明白為什么我的單詞計數器不起作用?!皃rint”似乎打印了預期值,但無論計數多少,測試都只看到“1”。package mainimport (    "code.google.com/p/go-tour/wc""strings"    "unicode/utf8")func WordCount(s string) map[string]int {    // explode the string into a slice without whitespaces    ws :=  strings.Fields(s)    //make a new map    c := make(map[string]int)    //iterate over each word    for _, v := range ws{    c[v] = utf8.RuneCountInString(v)    }    print( c["am"])    return c}func main() {    wc.Test(WordCount)}
查看完整描述

2 回答

?
www說

TA貢獻1775條經驗 獲得超8個贊

你在解決錯誤的問題。它不會詢問您每個單詞的長度,而是詢問每個單詞出現的次數。改變

c[v] = utf8.RuneCountInString(v)

為了

c[v] += 1 // or c[v]++


查看完整回答
反對 回復 2021-08-02
?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

問題是c[v] = utf8.RuneCountInString(v)。它有兩個問題:

  1. 每次重新遇到它時,您都會為每個單詞重置計數器。你應該增加,而不是設置。

  2. 您正在將單詞中的符文數量設置為計數器。謎題是“一個單詞在文本中出現多少次”。所以只需執行類似的操作c[v] = c[v] + 1(如果條目為空,則默認為 0)

另外,我會將文本標準化 - 去除標點符號并將所有內容小寫。


查看完整回答
反對 回復 2021-08-02
  • 2 回答
  • 0 關注
  • 199 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號