leetcode 每日一题统计范围内的元音字符串数

news/2024/10/30 23:18:32/

2559. 统计范围内的元音字符串数

提示

中等

32

相关企业

给你一个下标从 0 开始的字符串数组 words 以及一个二维整数数组 queries 。

每个查询 queries[i] = [li, ri] 会要求我们统计在 words 中下标在 li 到 ri 范围内(包含 这两个值)并且以元音开头和结尾的字符串的数目。

返回一个整数数组,其中数组的第 i 个元素对应第 i 个查询的答案。

注意:元音字母是 'a''e''i''o' 和 'u' 。

示例 1:

输入:words = ["aba","bcb","ece","aa","e"], queries = [[0,2],[1,4],[1,1]]
输出:[2,3,0]
解释:以元音开头和结尾的字符串是 "aba"、"ece"、"aa" 和 "e" 。
查询 [0,2] 结果为 2(字符串 "aba" 和 "ece")。
查询 [1,4] 结果为 3(字符串 "ece"、"aa"、"e")。
查询 [1,1] 结果为 0 。
返回结果 [2,3,0] 。

示例 2:

输入:words = ["a","e","i"], queries = [[0,2],[0,1],[2,2]]
输出:[3,2,1]
解释:每个字符串都满足这一条件,所以返回 [3,2,1] 。

提示:

  • 1 <= words.length <= 105
  • 1 <= words[i].length <= 40
  • words[i] 仅由小写英文字母组成
  • sum(words[i].length) <= 3 * 105
  • 1 <= queries.length <= 105
  • 0 <= queries[j][0] <= queries[j][1] < words.length

通过次数

10.7K

提交次数

17.5K

通过率

61.0%

题解思路:字符预处理+前缀和

以下是C++手写代码:

class Solution {
const string p="aeiouAEIOU";
public:vector<int> vowelStrings(vector<string>& words, vector<vector<int>>& queries) {int n=words.size();vector<int> count(n,0);for(int i=0;i<n;i++){char startC=words[i][0];char endC=words[i][words[i].size()-1];if (p.find(startC) != string::npos && p.find(endC) != string::npos){count[i]=1;}}vector<int> sum(n+1,0);for(int i=1;i<n+1;i++){sum[i]=sum[i-1]+count[i-1];}int m=queries.size();vector<int> ans(m,0);for(int i=0;i<m;i++){ans[i]=sum[queries[i][1]+1]-sum[queries[i][0]];}return ans;}
};

 以下是kotlin机器生成代码:(部分手动修改!)

class Solution {fun vowelStrings(words: Array<String>, queries: Array<IntArray>): IntArray {val isTemp=IntArray(words.size)for(i in 0..words.size-1){if(isVowelString(words[i])){isTemp[i]=1;}}val counts = IntArray(queries.size)for (i in queries.indices) {val query = queries[i]var count = 0for (j in query[0]..query[1]) {if (isTemp[j]==1) {count++}}counts[i] = count}return counts}fun isVowelString(word: String): Boolean {val vowels = setOf('a', 'e', 'i', 'o', 'u')return vowels.contains(word.first()) && vowels.contains(word.last())}
}

从{}的风格就能看出来哪里修改了!


http://www.ppmy.cn/news/163604.html

相关文章

[详细的微信授权登陆 demo]

目录 前言: Java实现微信授权登录的步骤如下&#xff1a; 生成授权链接&#xff0c;让用户点击该链接进行授权。可以使用WeixinService的getAuthorizeUrl方法来生成授权链接&#xff1a; 其中&#xff0c;redirectUrl是用户授权后跳转的链接&#xff0c;snsapi_userinfo表…

下周计划:封阳台、配电脑、补手机

8月8日&#xff0c;同老婆来长沙趁着奥运之夜倒长沙出差、租房中发生一起严重的民事案件、犯罪嫌疑人估计知道家中没人、破门而入——盗走了我的PSP2000&#xff0c;还有老婆的家用电脑Acer 4310笔记本电脑。 10月18日&#xff0c;独自一人坐车从宜昌再到长沙&#xff0c;该路…

喜讯丨计讯物联5G物联网数据网关TG463荣登2022年度中国物联网行业创新产品榜

近日&#xff0c;备受瞩目的2022‘物联之星’中国物联网产业年度榜单颁奖典礼在上海世博展览馆会场隆重举行。经由申报筛选、网络人气投票、专家评委投票等多重环节&#xff0c;计讯物联旗下5G物联网数据网关TG463荣登2022年度中国物联网行业创新产品榜。 作为中国物联网行业…

【嵌入式烧录/刷写文件】-2.8-Hex文件转换为S19文件

案例背景(共5页精讲)&#xff1a; 有如下一段Hex文件&#xff0c;将其转换为Motorola S-record(S19/SREC/mot/SX)文件。 :2091000058595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F70717273747576775F :2091200078797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939…

235款鼠标样式免费下载

235款鼠标样式免费下载 样式预览 1-12 13-24 25-36 37-48 49-60 61-72 73-84 85-96 97-108 109-120 121-132 133-144 145-156 157-168 169-180 181-192 193-204 205-216 217-216 229-235 下载方式 码云下载: WangSong1111/cursor Github下载&#xff1a;UniqueYou/cursor …

买富勒鼠标的请注意了

1月前买的A08G无线鼠标&#xff0c;最近出现了左键单击一下成了双击的现象&#xff0c;上网搜了一下&#xff0c;出现这种情况的人不少。问了一下客服&#xff0c;态度很好&#xff0c;拿鼠标到销售商去换即可。但我是从网上买的呀。只能自认倒霉&#xff0c;自己换个微动开关了…

如何获取鼠标位置

代码非常简单 POINT pos;GetCursorPos( &pos ); //获取鼠标在屏幕中的位置ScreenToClient( hWnd, &pos ); //转换到你的窗口中的位置 以上两个函数都包含在winuser.h里面。 另外&#xff0c;有 消息的组成&#xff1a;一个消息由一个消息名称&#xff08;U…

性价比哪家强?富勒G93S光磁微动鼠标深度评测

光磁微动打破传统壁垒&#xff0c;更好的解决了由于弹簧片老化带来的双击问题&#xff0c;快速响应&#xff0c;5ms触发&#xff0c;寿命长。富勒黑科技G93S将光磁微动再次演绎。 要玩就玩高清无码版 每次用逆天的4K显示器看视频&#xff0c;我总是担心他们会把痘痘肌、浓厚的粉…