本文主要是介绍leetcode做题笔记2586. 统计范围内的元音字符串数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
给你一个下标从 0 开始的字符串数组 words
和两个整数:left
和 right
。
如果字符串以元音字母开头并以元音字母结尾,那么该字符串就是一个 元音字符串 ,其中元音字母是 'a'
、'e'
、'i'
、'o'
、'u'
。
返回 words[i]
是元音字符串的数目,其中 i
在闭区间 [left, right]
内。
示例 1:
输入:words = ["are","amy","u"], left = 0, right = 2 输出:2 解释: - "are" 是一个元音字符串,因为它以 'a' 开头并以 'e' 结尾。 - "amy" 不是元音字符串,因为它没有以元音字母结尾。 - "u" 是一个元音字符串,因为它以 'u' 开头并以 'u' 结尾。 在上述范围中的元音字符串数目为 2 。
示例 2:
输入:words = ["hey","aeo","mu","ooo","artro"], left = 1, right = 4 输出:3 解释: - "aeo" 是一个元音字符串,因为它以 'a' 开头并以 'o' 结尾。 - "mu" 不是元音字符串,因为它没有以元音字母开头。 - "ooo" 是一个元音字符串,因为它以 'o' 开头并以 'o' 结尾。 - "artro" 是一个元音字符串,因为它以 'a' 开头并以 'o' 结尾。 在上述范围中的元音字符串数目为 3 。
思路一:模拟题意
c++解法
class Solution {
public:int vowelStrings(vector<string>& words, int left, int right) {auto get = [](char x)->int{return x == 'a'||x == 'e'||x == 'i'||x == 'o'||x == 'u';};auto getVer = [&get](string& x)->int{return get(x[0]) && get(x.back());};return accumulate(words.begin()+left,words.begin()+right+1,0,[&getVer](int sum,string& x){return sum+getVer(x);});}
};
分析:
直接判断最后一个和第一个字符是否属于元音字符,返回所有符合的总数,利用lambda几行解决
总结:
本题按照题意判断即可解决
这篇关于leetcode做题笔记2586. 统计范围内的元音字符串数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!