A:每次讀取一行字元串,從頭到尾枚舉,判斷這個字母應該變為哪一個字母,然後直接替換并輸出即
可。
#include<iostream>
#include<cstdio>
#include<string.h>
#include<stdio.h>
using namespace std;
char str[200000];
int main()
{
while(gets(str))
{
int i;
for(i=0;str[i]!='\0';i++){
if(str[i]<'e') str[i]='a';
else if (str[i]<'i') str[i]='e';
else if (str[i]<'o') str[i]='i';
else if (str[i]<'u') str[i]='o';
else if (str[i]<'y') str[i]='u';
else str[i]='y';
}
puts(str);
}
return 0;
}
B:動态規劃
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#define ll long long
#define mod 2000120420010122
using namespace std;
string str;
ll dp[5];
int main()
{
while(cin>>str){
int len = str.length();
memset(dp,0,sizeof(dp));
for(int i=0;i<len;i++){
str[i] = tolower(str[i]);
dp[1] = (dp[1] + (str[i] == 'c')) % mod;
dp[2] = (dp[2] + (str[i] == 'w') * dp[1]) % mod;
dp[3] = (dp[3] + (str[i] == 'b') * dp[2]) % mod;
dp[4] = (dp[4] + (str[i] == 'c') * dp[3]) % mod;
}
cout<<dp[4]<<endl;
}
return 0;
}