C++代码入门05 字符串容器-LMLPHP

图源:文心一言

上机题目练习整理,本篇作为字符串容器的代码,提供了常规解法及其详细解释,供小伙伴们参考~🥝🥝

  • 第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博客

01-21 16:42