#include<bits/stdc++.h>
#define lim 1000009
using namespace std;
int n,k;
char s[lim];
vector<int> v;
int main()
{
scanf("%s", s);
n = strlen(s);
for(int i = 0;i<n;++i)
{
if((s[i]=='a')||(s[i]=='e')||(s[i]=='i')||(s[i]=='o')||(s[i]=='u')||(s[i]=='y'))
{
s[i] = 1;
}
else
{
s[i] = 0;
}
}
v.push_back(0);
for(int i = 1;i<n-1;++i)
{
if((s[i-1]==s[i])&&(s[i]==s[i+1]))
{
v.push_back(i);
}
}
v.push_back(n-1);
long long w = 1;
for(int i = 1;i<v.size();++i)
{
w += (long long)(v[i]-v[i-1]+2)*(v[i]-v[i-1]+1)/2-1;
}
printf("%lld\n", (long long)(n+1)*n/2-w);
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | #include<bits/stdc++.h> #define lim 1000009 using namespace std; int n,k; char s[lim]; vector<int> v; int main() { scanf("%s", s); n = strlen(s); for(int i = 0;i<n;++i) { if((s[i]=='a')||(s[i]=='e')||(s[i]=='i')||(s[i]=='o')||(s[i]=='u')||(s[i]=='y')) { s[i] = 1; } else { s[i] = 0; } } v.push_back(0); for(int i = 1;i<n-1;++i) { if((s[i-1]==s[i])&&(s[i]==s[i+1])) { v.push_back(i); } } v.push_back(n-1); long long w = 1; for(int i = 1;i<v.size();++i) { w += (long long)(v[i]-v[i-1]+2)*(v[i]-v[i-1]+1)/2-1; } printf("%lld\n", (long long)(n+1)*n/2-w); } |
English