图源:文心一言
上机题目练习整理,本篇作为字符串容器的代码,提供了常规解法及其详细解释,供小伙伴们参考~🥝🥝
- 第1版:在力扣新手村刷题的记录~🧩🧩
- 方法:常规枚举解法~
编辑:梅头脑🌸
审核:文心一言
题目:2586. 统计范围内的元音字符串数 - 力扣(LeetCode)
目录
🔚结语
🧵统计元音内的范围字符串数
🧩题目
🌰方法一:常规枚举解法
📇算法思路
⌨️算法代码1
#include <vector>
#include <string>
#include <cctype> // 为了使用 tolower()
using namespace std;
class Solution {
public:
int vowelStrings(vector<string>& words, int left, int right) {
int count = 0;
// 遍历指定范围内的字符串
for (int i = left; i <= right; i++) {
string& word = words[i];
// 判断字符串是否以元音字母开头和结尾
if (!word.empty()) {
char firstChar = tolower(word[0]);
char lastChar = tolower(word[word.size() - 1]);
if ((firstChar == 'a' || firstChar == 'e' || firstChar == 'i' || firstChar == 'o' || firstChar == 'u') &&
(lastChar == 'a' || lastChar == 'e' || lastChar == 'i' || lastChar == 'o' || lastChar == 'u')) {
count++;
}
}
}
return count;
}
};
⌨️算法代码2
class Solution {
public:
int vowelStrings(vector<string>& words, int left, int right) {
// 元音字母集合
vector<char> vowels = {'a', 'e', 'i', 'o', 'u'};
int count = 0;
// 遍历指定范围内的字符串
for (int i = left; i <= right; i++) {
string& word = words[i];
char first = tolower(word[0]); // 转换为小写字母
char last = tolower(word[word.size() - 1]); // 转换为小写字母
// 判断字符串是否以元音字母开头和结尾
if (find(vowels.begin(), vowels.end(), first) != vowels.end() &&
find(vowels.begin(), vowels.end(), last) != vowels.end()) {
count++;
}
}
return count;
}
};
⌨️算法代码3
class Solution {
public:
int vowelStrings(vector<string>& words, int left, int right) {
unordered_set<char> vowels = {'a', 'e', 'i', 'o', 'u'};
int ans = 0;
for (int i = left; i <= right; ++i) {
const string& word = words[i];
if (vowels.count(word[0]) && vowels.count(word.back())) {
++ans;
}
}
return ans;
}
};
📇代码解释
1:遍历指定范围的字符串
2:判断字符串的长度
3:判断字符串以元音开头
🔚结语
博文到此结束,写得模糊或者有误之处,欢迎小伙伴留言讨论与批评,督促博主优化内容{例如有错误、难理解、不简洁、缺功能}等,博主会顶锅前来修改~~😶🌫️😶🌫️
我是梅头脑,本片博文若有帮助,欢迎小伙伴动动可爱的小手默默给个赞支持一下,感谢点赞小伙伴对于博主的支持~~🌟🌟
同系列的博文:🌸数据结构_梅头脑_的博客-CSDN博客
同博主的博文:🌸随笔03 笔记整理-CSDN博客