【遍历】【数组】【2023-11-07】
2586. 统计范围内的元音字符串数
统计范围内的元音字符串数。
遍历下标在 [left, right]
内的字符串 s
,如果 s
的第一个字母和最后一个字母都是元音字母,把答案加一。
实现代码
class Solution {
public:
int vowelStrings(vector<string>& words, int left, int right) {
string str = "aoeiu";
int res = 0;
for (int i = left; i <= right; ++i) {
string word = words[i];
res += str.find(word[0]) != string::npos && str.find(word.back()) != string::npos;
}
return res;
}
};
代码中的 string::npos
表示直到字符串结果,和 str.find(word[0])
连用即代码中的 str.find(word[0]) != string::npos
表示查找到 word[0]
在字符串 str
中的位置,也就是不等于 string::npos
。如果查找不到那就回返回 string::npos
。
复杂度分析
时间复杂度: O ( r i g h t − l e f t ) O(right - left) O(right−left)。
空间复杂度: O ( 1 ) O(1) O(1)。
class Solution:
def vowelStrings(self, words: List[str], left: int, right: int) -> int:
return sum(s[0] in "aoeiu" and s[-1] in "aoeiu" for s in words[left: right + 1])
如果文章内容有任何错误或者您对文章有任何疑问,欢迎私信博主或者在评论区指出 。
如果大家有更优的时间、空间复杂度方法,欢迎评论区交流。
最后,感谢您的阅读,如果感到有所收获的话可以给博主点一个 哦。