1. 题目

给定一个段落 (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"不是最终的答案,虽然它出现次数更多,但它在禁用单词列表中。提示:
1 <= 段落长度 <= 1000
0 <= 禁用单词个数 <= 100
1 <= 禁用单词长度 <= 10
答案是唯一的, 且都是小写字母 (即使在 paragraph 里是大写的,
即使是一些特定的名词,答案都是小写的。)
paragraph 只包含字母、空格和下列标点符号!?',;.
不存在没有连字符或者带有连字符的单词。
单词里只包含字母,不会出现省略号或者其他标点符号。

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/most-common-word
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

class Solution {public:string mostCommonWord(string paragraph, vector<string>& banned) {int i, maxcount = 0;string sub;unordered_map<string,int> m;unordered_set<string> s(banned.begin(), banned.end());for(i = 0; i < paragraph.size(); ++i){if(isalpha(paragraph[i])){sub.push_back(tolower(paragraph[i]));if(i == paragraph.size()-1)m[sub]++;//获取单词,计数+1}else{if(sub != "")m[sub]++;//获取单词,计数+1sub = "";}}for(auto rec:m){if(!s.count(rec.first))//不在禁用列表{if(rec.second > maxcount)//次数更多{maxcount = rec.second;sub = rec.first;}}}return sub;}
};

4 ms 9 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 819. 最常见的单词相关推荐

  1. [LeetCode]819. 最常见的单词

    题目 给定一个段落 (paragraph) 和一个禁用单词列表 (banned).返回出现次数最多,同时不在禁用列表中的单词.题目保证至少有一个词不在禁用列表中,而且答案唯一. 禁用列表中的单词用小写 ...

  2. [Leetcode每日一题] 819. 最常见的单词

    题目描述 给定一个段落 (paragraph) 和一个禁用单词列表 (banned).返回出现次数最多,同时不在禁用列表中的单词. 题目保证至少有一个词不在禁用列表中,而且答案唯一. 禁用列表中的单词 ...

  3. 【每日一算法】最常见的单词

    微信改版,加星标不迷路! 每日一算法-最常见的单词 给定一个段落 (paragraph) 和一个禁用单词列表 (banned).返回出现次数最多,同时不在禁用列表中的单词.题目保证至少有一个词不在禁用 ...

  4. 【Leetcode819】最常见的单词

    Leetcode819 最常见的单词 1.题目 给定一个段落 (paragraph) 和一个禁用单词列表 (banned).返回出现次数最多,同时不在禁用列表中的单词. 题目保证至少有一个词不在禁用列 ...

  5. python所有单词和语法_单词积累:常见,阅读单词和语法重点(全部都要)

    题目: 单词积累:常见,阅读单词和语法重点(全部都要) 本人是英语很差的,所以,请解释的详细并在后面用括号简单说.例如什么是时间状语 ···· ···() 有很多呢,多列点,要有例句是越易懂愈好.单词 ...

  6. 程序员常见700单词

    程序员常见700单词 快捷键  Ctrl+F  进行搜索查找 1. password  /ˈpæswɜ:rd/  n. 密码 2. grep   /'grep/  n.  检索目标行命令 3. tre ...

  7. c语言音标字符,c语言常见英语单词带音标-20210408030123.docx-原创力文档

    集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN] 集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN] C语言常见英语单词带音标 main [m ...

  8. LeetCode简单题之最常见的单词

    题目 给定一个段落 (paragraph) 和一个禁用单词列表 (banned).返回出现次数最多,同时不在禁用列表中的单词. 题目保证至少有一个词不在禁用列表中,而且答案唯一. 禁用列表中的单词用小 ...

  9. C#LeetCode刷题之#819-最常见的单词(Most Common Word)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3969 访问. 给定一个段落 (paragraph) 和一个禁用单 ...

最新文章

  1. 机器学习(5)降维 -- 特征选择(低方差过滤与相关系数)与主成分分析(PCA降维)
  2. 基于jQuery很牛X的批量上传插件
  3. 深圳大学计算机英语作业答案,2016年深圳大学大学计算机基础mooc课第四章答案...
  4. C#刷剑指Offer | 在O(1)时间删除链表节点
  5. JAVA不同类型数组重载_java学习笔记--java中的方法与数组
  6. [转载] Python学习:Python成员运算符和身份运算符
  7. 混合牛奶(洛谷-P1208)
  8. python画图x轴丢值_python-从pyplot绘图中擦除先前绘制的内容
  9. L3-003. 社交集群-PAT团体程序设计天梯赛GPLT(并查集)
  10. openstack【Kilo】汇总:包括20英文文档、各个组件新增功能及Kilo版部署
  11. MySQL时区错误导致server time zone value 'Öйú±ê׼ʱ¼ä' 错误
  12. 【visio 绘图矢量图素材网站】
  13. 百度超级链联合超级账本:区块链技术如何提升金融行业互信与安全
  14. 解决 NET::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK)
  15. linux androidx86双系统,实用教程:PC实现Windows/原生安卓双系统
  16. byteTrack数据集categories不规范带来的问题
  17. Instruments性能检测
  18. 百度服务器的操作系统是什么,百度公共dns地址是多少|win7设置百度公共dns步骤...
  19. 杭电ACM:人见人爱A-B
  20. java对对碰游戏设计报告_手把手带你用Java打造一款对对碰游戏(下篇)

热门文章

  1. ansible inventory 主机清单配置
  2. python编写命令行框架_python的pytest框架之命令行参数详解(上)
  3. mysql gtid 还是pxc_记一次 PXC 集群拆分引发的思考
  4. java中有scoreframe类型嘛_java构造函数的三种类型总结
  5. 关于arguments的用法
  6. 亚信第一天 5-15
  7. 完全理解Gson(1):简单入门
  8. ctype.h,ctype.c 结构分析 \linux-1.0\linux\include\linux\ctype
  9. __va_rounded_size
  10. 噪声控制简史,以及几个简单的声学概念