问题描述
现在有一个长度为 的字符串,都有小写字母组成。
输出最长的连续元音的长度
输入格式
第一行一个整数 ,
接下来一行表示字符串
输出格式
输出一行,一个数,代表答案
样例输入
10
aeioubaeio
样例输出
5
#include <bits/stdc++.h>
using namespace std;
#define ll long long
unordered_set<char> yuan_yin = {'a', 'e', 'i', 'o', 'u'};
inline bool check(const char& c) {
return yuan_yin.find(c) != yuan_yin.end();
}
int main() {
int n, t = 0, ans = 0;
string s;
cin >> n >> s;
for (auto& i : s) {
if (check(i))
++t;
else
ans = max(ans, t), t = 0;
}
cout << max(ans, t);
return 0;
}
/*
//会TLE的写法
unordered_set<char> yuan_yin = {'a', 'e', 'i', 'o', 'u'};
string s;
inline bool check(const int& l, const int& r) {
for (int i = l; i <= r; ++i)
if (yuan_yin.find(s[i]) == yuan_yin.end())
return false;
return true;
}
int main() {
int n, l = 0, r = 0, ans = 0, lastl = -1, lastr = -1;
cin >> n >> s;
while (l != lastl or r != lastr) {
lastl = l, lastr = r;
if (check(l, r)) {
ans = max(ans, r - l + 1);
if (r < n - 1)
++r;
} else if (r < n - 1) {
l = ++r;
}
}
cout << ans;
return 0;
}
*/