本篇博客会讲解力扣“2586. 统计范围内的元音字符串数”的解题思路,这是题目链接。
本题可以使用一个宏来判断一个字符是不是元音字母,接着遍历字符串数组,统计满足条件的字符串个数。
需要满足的条件有:
- 第一个字符是元音字母。其实就是字符数组的第一个元素。
- 最后一个字符是元音字母。我们可以写个循环来找字符串末尾的\0,也可以直接使用strlen函数,\0前一个字符的下标是strlen(s)-1。
// 判断一个字符是不是元音字母
#define IS_VOWEL(ch) \
(ch == 'a' || ch == 'e' || ch == 'i' \
|| ch == 'o' || ch == 'u')
int vowelStrings(char ** words, int wordsSize, int left, int right){
int ret = 0;
for (int i = left; i <= right; ++i)
{
// 判断字符串首字符和尾字符是否都是元音字母
if (IS_VOWEL(words[i][0]) &&
IS_VOWEL(words[i][strlen(words[i]) - 1]))
{
++ret;
}
}
return ret;
}
总结
- 解决简单的问题可以使用宏定义。
- 可以使用strlen求字符串长度,从而找到字符串的末尾字符。
感谢大家的阅读!