目录
一、前言
二、判断字符是否为元音字母
✨ 繁琐的方法
✨ 神奇又快速的方法
三、常考面试题
四、共勉
一、前言
大家有没有发现,我们在做算法题的时候,经常会碰到让我们判断一个字母是否为 元音字母,可是用通常的 if 条件判断 要繁琐了,于是我就在想,在 【C++】 中有没有内置的函数(类似
isalpha()
,isdigit()
,isalnum()等
)能直接完成这个功能,但是函数没发现,却发现更加新颖的方法,让我们的代码更加简洁,来看一下吧!
二、判断字符是否为元音字母
✨ 繁琐的方法
int main(){char ch = 'a';if ((ch == 'A') || (ch == 'E') || (ch == 'I') || (ch == 'O') || (ch == 'U') || (ch == 'a') ||(ch == 'e') || (ch == 'i') || (ch == 'o') || (ch == 'u')){cout << "YES" << endl;}else{cout << "NO" << endl;}return 0;}
这几句话太长了,太jb复杂了,一会儿等号,一会儿单引号,一会儿竖线分隔符,敲一遍要好几十秒。频繁使用为了避免函数调用加快执行速度是可以这样写的,但是如果我对速度没有那么高的要求呢,怎么写得简单一点呢?
✨ 神奇又快速的方法
int main(){char ch = 'a';string vowel = "aeiouAEIOU";if (vowel.find(ch) == -1){cout << "NO" << endl;}else{cout << "YES" << endl;}return 0;}
可以发现这次的代码 更加的简洁和方便 ,直接调用 find() 函数去寻找即可。
三、常考面试题
题目:反转字符串中的元音字母
链接: 反转字符串中的元音字母
class Solution {
public:string reverseVowels(string s) {string vowels = "aeiouAEIOU";int begin = 0, end = s.size()-1;while(begin<end){while(begin<end && vowels.find(s[begin])==-1){begin++;}while(begin<end && vowels.find(s[end])==-1){end--;}if(begin<end){swap(s[begin++],s[end--]);}}return s;}
};
四、共勉
以下就是我对 快速判断元音字母 的理解,如果有不懂和发现问题的小伙伴,请在评论区说出来哦,同时我还会继续更新对C++ vector 类的理解,请持续关注我哦!!!