LeetCode 819. 最常见的单词
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. 最常见的单词相关推荐
- [LeetCode]819. 最常见的单词
题目 给定一个段落 (paragraph) 和一个禁用单词列表 (banned).返回出现次数最多,同时不在禁用列表中的单词.题目保证至少有一个词不在禁用列表中,而且答案唯一. 禁用列表中的单词用小写 ...
- [Leetcode每日一题] 819. 最常见的单词
题目描述 给定一个段落 (paragraph) 和一个禁用单词列表 (banned).返回出现次数最多,同时不在禁用列表中的单词. 题目保证至少有一个词不在禁用列表中,而且答案唯一. 禁用列表中的单词 ...
- 【每日一算法】最常见的单词
微信改版,加星标不迷路! 每日一算法-最常见的单词 给定一个段落 (paragraph) 和一个禁用单词列表 (banned).返回出现次数最多,同时不在禁用列表中的单词.题目保证至少有一个词不在禁用 ...
- 【Leetcode819】最常见的单词
Leetcode819 最常见的单词 1.题目 给定一个段落 (paragraph) 和一个禁用单词列表 (banned).返回出现次数最多,同时不在禁用列表中的单词. 题目保证至少有一个词不在禁用列 ...
- python所有单词和语法_单词积累:常见,阅读单词和语法重点(全部都要)
题目: 单词积累:常见,阅读单词和语法重点(全部都要) 本人是英语很差的,所以,请解释的详细并在后面用括号简单说.例如什么是时间状语 ···· ···() 有很多呢,多列点,要有例句是越易懂愈好.单词 ...
- 程序员常见700单词
程序员常见700单词 快捷键 Ctrl+F 进行搜索查找 1. password /ˈpæswɜ:rd/ n. 密码 2. grep /'grep/ n. 检索目标行命令 3. tre ...
- c语言音标字符,c语言常见英语单词带音标-20210408030123.docx-原创力文档
集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN] 集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN] C语言常见英语单词带音标 main [m ...
- LeetCode简单题之最常见的单词
题目 给定一个段落 (paragraph) 和一个禁用单词列表 (banned).返回出现次数最多,同时不在禁用列表中的单词. 题目保证至少有一个词不在禁用列表中,而且答案唯一. 禁用列表中的单词用小 ...
- C#LeetCode刷题之#819-最常见的单词(Most Common Word)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3969 访问. 给定一个段落 (paragraph) 和一个禁用单 ...
最新文章
- 机器学习(5)降维 -- 特征选择(低方差过滤与相关系数)与主成分分析(PCA降维)
- 基于jQuery很牛X的批量上传插件
- 深圳大学计算机英语作业答案,2016年深圳大学大学计算机基础mooc课第四章答案...
- C#刷剑指Offer | 在O(1)时间删除链表节点
- JAVA不同类型数组重载_java学习笔记--java中的方法与数组
- [转载] Python学习:Python成员运算符和身份运算符
- 混合牛奶(洛谷-P1208)
- python画图x轴丢值_python-从pyplot绘图中擦除先前绘制的内容
- L3-003. 社交集群-PAT团体程序设计天梯赛GPLT(并查集)
- openstack【Kilo】汇总:包括20英文文档、各个组件新增功能及Kilo版部署
- MySQL时区错误导致server time zone value 'Öйú±ê׼ʱ¼ä' 错误
- 【visio 绘图矢量图素材网站】
- 百度超级链联合超级账本:区块链技术如何提升金融行业互信与安全
- 解决 NET::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK)
- linux androidx86双系统,实用教程:PC实现Windows/原生安卓双系统
- byteTrack数据集categories不规范带来的问题
- Instruments性能检测
- 百度服务器的操作系统是什么,百度公共dns地址是多少|win7设置百度公共dns步骤...
- 杭电ACM:人见人爱A-B
- java对对碰游戏设计报告_手把手带你用Java打造一款对对碰游戏(下篇)
热门文章
- ansible inventory 主机清单配置
- python编写命令行框架_python的pytest框架之命令行参数详解(上)
- mysql gtid 还是pxc_记一次 PXC 集群拆分引发的思考
- java中有scoreframe类型嘛_java构造函数的三种类型总结
- 关于arguments的用法
- 亚信第一天 5-15
- 完全理解Gson(1):简单入门
- ctype.h,ctype.c 结构分析 \linux-1.0\linux\include\linux\ctype
- __va_rounded_size
- 噪声控制简史,以及几个简单的声学概念