LeetCode刷题---字符串---819

embedded/2025/2/15 16:53:33/

最常见的单词

819. 最常见的单词 - 力扣(LeetCode)

题目:

给你一个字符串 paragraph 和一个表示禁用词的字符串数组 banned ,返回出现频率最高的非禁用词。题目数据 保证 至少存在一个非禁用词,且答案 唯一 

paragraph 中的单词 不区分大小写 ,答案应以 小写 形式返回。

示例 1:

输入:paragraph = "Bob hit a ball, the hit BALL flew far after it was hit.", banned = ["hit"]
输出:"ball"
解释:
"hit" 出现了 3 次,但它是禁用词。
"ball" 出现了两次(没有其他单词出现这么多次),因此它是段落中出现频率最高的非禁用词。
请注意,段落中的单词不区分大小写,
标点符号会被忽略(即使它们紧挨着单词,如 "ball,"),
并且尽管 "hit" 出现的次数更多,但它不能作为答案,因为它是禁用词。

示例 2:

输入:paragraph = "a.", banned = []
输出:"a"

提示:

  • 1 <= paragraph.length <= 1000
  • paragraph 由英文字母、空格 ' '、和以下符号组成:"!?',;."
  • 0 <= banned.length <= 100
  • 1 <= banned[i].length <= 10
  • banned[i] 仅由小写英文字母组成
自己的思路和代码:
思路:

        easy的题,直接上哈希表,一路搞定!

代码:
class Solution {
public:string mostCommonWord(string paragraph, vector<string>& banned) {string word;unordered_map<string, int> hashmap;for (int i = 0; i < paragraph.size(); i++) {if ((paragraph[i] >= 'A' && paragraph[i] <= 'Z') ||(paragraph[i] >= 'a' && paragraph[i] <= 'z')) {if (paragraph[i] >= 'A' && paragraph[i] <= 'Z') {word += tolower(paragraph[i]);} else {word += paragraph[i];}} else {if(!word.empty()) {hashmap[word]++;word.clear();}      }// return 'a';}if(!word.empty()) {hashmap[word]++;}for (auto x : banned) {hashmap.erase(x);}string result;for (auto &[k, v] : hashmap) {if (hashmap[result] < v) {result = k;//printf("%s\n", result.c_str());}}return result;}
};


http://www.ppmy.cn/embedded/162460.html

相关文章

Python 面向对象(类,对象,方法,属性,魔术方法)

前言&#xff1a;在讲面向对象之前&#xff0c;我们先将面向过程和面向对象进行一个简单的分析比较&#xff0c;这样我们可以更好的理解与区分&#xff0c;然后我们在详细的讲解面向对象的优势。 面向过程&#xff08;Procedure-Oriented Programming&#xff0c;POP&#xff0…

3D数字化技术:重塑“人货场”,开启营销新纪元

在数字化浪潮的推动下&#xff0c;3D数字化技术正以前所未有的方式重新诠释着“人货场”的传统概念。这一变革的核心在于将客户、产品和场景这三大要素&#xff0c;通过3D商品、3D场景以及数字人等创新手段进行深度重构&#xff0c;从而为企业营销带来了一场革命性的转变。 传…

数据科学之数据管理|python for Excel

使用python操作Excel我们主要介绍xlrd读取Excel文件,Xlwt写入Excel文件,xlutils更新数据。以及Openpyxl操作excel。 下图是不同的模块对Excel操作的对比 一、数据读写与更新 (一) 读取数据--xlrd 1. 安装 pip install xlrd 2. 常用方法与属性 函数名&属性 含义 xlrd…

【计算机毕业设计】Spring Boot教师人事档案管理系统功能说明

&#x1f389;**欢迎来到琛哥的技术世界&#xff01;**&#x1f389; &#x1f4d8; 博主小档案&#xff1a; 琛哥&#xff0c;一名来自世界500强的资深程序猿&#xff0c;毕业于国内知名985高校。 &#x1f527; 技术专长&#xff1a; 琛哥在深度学习任务中展现出卓越的能力&a…

【Java-数据结构】Java 链表面试题上 “最后一公里”:解决复杂链表问题的致胜法宝

我的个人主页 我的专栏&#xff1a;Java-数据结构&#xff0c;希望能帮助到大家&#xff01;&#xff01;&#xff01;点赞❤ 收藏❤ 引言&#xff1a; Java链表&#xff0c;看似简单的链式结构&#xff0c;却蕴含着诸多有趣的特性与奥秘&#xff0c;等待我们去挖掘。它就像一…

SSL域名证书怎么申请?

在数字化时代&#xff0c;网络安全已成为企业和个人不可忽视的重要议题。SSL&#xff08;Secure Sockets Layer&#xff0c;安全套接层&#xff09;域名证书&#xff0c;作为保障网站数据传输安全的关键工具&#xff0c;其重要性日益凸显。 一、SSL域名证书&#xff1a;网络安…

模型报错infeasible,如何查看冲突约束

在使用Gurobi求解模型时&#xff0c;如果模型不可行&#xff08;infeasible&#xff09;&#xff0c;可以通过以下步骤来查看冲突的约束或变量&#xff0c;帮助诊断问题&#xff1a; 1. 使用 computeIIS() 方法 Gurobi 提供了 computeIIS() 方法&#xff0c;用于计算不可行模…

网络运维与网络安全技术分享

网络运维与网络安全介绍之二 在上阶段给大家基本介绍了网络运维与网络安全专业第一阶段的内容之后&#xff0c;接下来&#xff0c;我们就开始进入正式内容分享了&#xff01; 第一阶段&#xff1a;运维基础与网络系统管理之Windows系统的安装部署以及常见Windows应用技巧。 在这…