Golang:
思路:这题的难点也在字符串的处理,但大部分的语言都提供类似的函数了,如果我们想提取字符串里的所有单词,使用正则是很好的途径,自己去分割字符串,处理标点符号,反而没什么意思。
代码如下:
func mostCommonWord(paragraph string, banned []string) string {
reg:=regexp.MustCompile("\\w+")
mp1,mp2:=make(map[string]int),make(map[string]int)
for _,v:=range banned{
mp1[v]=1
}
if reg!=nil {
strs:=reg.FindAllString(paragraph,-1)
for _,v:=range strs{
if mp1[strings.ToLower(v)]!=1 {
mp2[strings.ToLower(v)]++
}
}
}
max:=0
res:=""
for k,v:=range mp2{
if v>max {
max=v
res=k
}
}
return res
}
有疑问加站长微信联系(非本文作者)