How to Remove Vowels from a String in C++?

  • 时间:2020-09-23 15:50:46
  • 分类:网络文摘
  • 阅读:116 次

Given a string S, remove the vowels ‘a’, ‘e’, ‘i’, ‘o’, and ‘u’ from it, and return the new string.

Example 1:
Input: “leetcodeisacommunityforcoders”
Output: “ltcdscmmntyfrcdrs”

Example 2:
Input: “aeiou”
Output: “”

S consists of lowercase English letters only.
1 <= S.length <= 1000

Loop and Remove

The usual approach will be looping the string and check each character. Ignore the vowels or otherwise push it to the result string.

1
2
3
4
5
6
7
8
9
10
11
12
class Solution {
public:
    string removeVowels(string S) {
        string s = "";
        for (const auto &n: S) {
            if (string("aeiou").find(n) == string::npos) {
                s.push_back(n);  // s += n;
            }
        }
        return s;
    }
};
class Solution {
public:
    string removeVowels(string S) {
        string s = "";
        for (const auto &n: S) {
            if (string("aeiou").find(n) == string::npos) {
                s.push_back(n);  // s += n;
            }
        }
        return s;
    }
};

Using Modern C++ std::accumulate()

With the std::accumulate() in Modern C++ e.g. C++14, we need to pass the begin and end iterators, the initial value which is set to a mutable string/vector, and a accmulator function.

1
2
3
4
5
6
7
8
9
10
11
class Solution {
public:
    string removeVowels(string S) {
        return std::accumulate(begin(S), end(S), std::string{}, [](auto &a, auto &b) {
            if (string("aeiou").find(b) == string::npos) {
                return a + b; 
            } 
            return a; // b is vowel, ignore
        });
    }
};
class Solution {
public:
    string removeVowels(string S) {
        return std::accumulate(begin(S), end(S), std::string{}, [](auto &a, auto &b) {
            if (string("aeiou").find(b) == string::npos) {
                return a + b; 
            } 
            return a; // b is vowel, ignore
        });
    }
};

It is worth pointing out that the “” in C++ is interpreted to char* by default, that is why we need to explicitly cast it to string type before using the find() method.

–EOF (The Ultimate Computing & Technology Blog) —

推荐阅读:
Digital Business Cards App Will Change The Way You Network Forev  3 Things You Need To Know When Launching Your Startup’s Blog  Instagram Influencer Marketing Is A Billion Dollar Industry [Inf  5 Social Adverts for Driving Stellar Webinar Attendance (Infogra  5 Ways to Serve Up a Tastier Food Blog to Your Audience  Meet These Single Moms That Created Successful Blogs  Boost Your SERP Rankings with Better Marketing Automation  How to Turn Your Withering Blog Posts into Fully-Fledged Plants  The Emoji Evolution: How Your Brand Can Use Emojis  6 Tips to Get Started With Selling on Your Blog 
评论列表
添加评论