本文主要是介绍最常见的单词(819),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
给定一个段落 (paragraph) 和一个禁用单词列表 (banned)。返回出现次数最多,同时不在禁用列表中的单词。
题目保证至少有一个词不在禁用列表中,而且答案唯一。
禁用列表中的单词用小写字母表示,不含标点符号。段落中的单词不区分大小写。答案都是小写字母。
示例:
输入:
paragraph = “Bob hit a ball, the hit BALL flew far after it was hit.”
banned = [“hit”]
输出: “ball”
解释:
“hit” 出现了3次,但它是一个禁用的单词。
“ball” 出现了2次 (同时没有其他单词出现2次),所以它是段落里出现次数最多的,且不在禁用列表中的单词。
注意,所有这些单词在段落里不区分大小写,标点符号需要忽略(即使是紧挨着单词也忽略, 比如 “ball,”),
"hit"不是最终的答案,虽然它出现次数更多,但它在禁用单词列表中。
Answer:
public class Solution
{
public string MostCommonWord(string paragraph, string[] banned)
{
int maxNum=0;
string index=" “;
string newPara=paragraph.Replace(”."," “).Replace(”!"," “).Replace(”,"," “).Replace(”?"," “).Replace(”;"," “).Replace(”’"," ");
string[] arr = newPara.Split(new char[] { ’ ’ }, StringSplitOptions.RemoveEmptyEntries);
Dictionary<string,int> dic=new Dictionary<string,int>();
for(int i=0;i<arr.Length;i++)
{
string xiaoxie=arr[i].ToLower();
if(banned.Contains(xiaoxie)==false)
{
if(dic.ContainsKey(xiaoxie)==false)
{
dic.Add(xiaoxie,1);
}
else
{
dic[xiaoxie]++;
}
index=maxNum>=dic[xiaoxie]?index:xiaoxie;
maxNum=Math.Max(dic[xiaoxie],maxNum);
}}return index;}
}
Answer2:
public class Solution
{
public string MostCommonWord(string paragraph, string[] banned)
{
int maxNum = 0;
string index = “”;
Dictionary<string, int> num = new Dictionary<string, int>();
string[] str = paragraph.Split(’ ‘, ‘,’, ‘.’, ‘!’, ‘?’,’;’,’’’);
for (int i = 0; i < str.Length; i++)
{
string temp;
temp = str[i].ToLower();
if (Array.IndexOf(banned, temp) == -1 && temp != “”)
{
if (!num.ContainsKey(temp)) num.Add(temp, 1);
else
{
num[temp]++;
}
index = maxNum >= num[temp] ? index : temp;
maxNum = Math.Max(num[temp], maxNum);
}
}
return index;
}
}
这篇关于最常见的单词(819)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!