最长元音子串的长度

题目描述

【最长元音子串的长度】定义:当一个字符串只有元音字母(aeiouAEIOU)组成,称为元音字符串。现给定一个字 符串,请找出其中最长的元音字符串,并返回其长度;
如果找不到,则返回 0。子串:字符串中任意一个连续的字符组成的子序列称为该字符串的子串。

注意:
输入描述:
一个字符串,其长度范围:0<length<65535。
字符串仅由字母a-z和A-Z组成。

输出描述:
一个整数,表示最长的元音字符串的长度。
示 例:
输入
asdbuiodevauufgh
输出
3

C++
#include<bits/stdc++.h>
#include<string>
using namespace std;

bool isAstr(char & s);
int main()
{
    string inputs;
    getline(cin, inputs);
    transform(inputs.begin(), inputs.end(), inputs.begin(),::tolower);
    //transform(inputs.begin(), inputs.end(), inputs.begin(), ::toupper);
    //1找到最长元音子串
    int maxLen = 0;
    for (int i = 0; i < inputs.length(); i++)
    {
	if(isAstr(inputs[i]))
	{
	    for (int j = i + 1; j < inputs.length(); j++)
	    {
		if(!isAstr(inputs[j]))
		{
		    maxLen = max(maxLen, j - i);
		    i = j;
		    break;
		}
		if(j == inputs.length() - 1)
		{
		    maxLen = max(maxLen, j - i + 1);
		    i = j;
		}
	    }
	}
    }
    cout << "最大元音子串为:" << maxLen << endl;
    //2加大难度,找出全部元音子串,解法类似子集
    //对于本题,只需返回最长的元音子串的长度。
    system("pause");
    return 0;
}
bool isAstr(char & s)
{
    if(s == 'a' || s == 'e' || s == 'i' || s == 'o' || s == 'u')
    {
	return true;
    }
    return false;
}



全部评论

相关推荐

05-23 20:31
已编辑
武汉大学 Java
内向的柠檬精在研究求职打法:注意把武大标粗标大 本地你俩不是乱杀
点赞 评论 收藏
分享
06-27 18:53
门头沟学院 Java
这样才知道自己不适合搞代码,考公去咯
码农索隆:好家伙,我这干的挺好,我老妈还劝我考公呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务