CF858C
题意
如果一个字符串同时满足:
1、三个或以上个连着的辅音字母
2、这一段连着的辅音字母不是全部一样的
则这个字符串非法
整个程序都用一个循环来模拟,要满足要求要求可以用一个 num 来统计连续辅音字母的数量,大于等于 3 且 3 个辅音字母不一样,输出空格。
另外,我们可以加一个辅音元音判断的程序
int pd(char x){
for(int i=0; i<5; i++)
if(x==y[i])//y数组来统计元音
return 0;//如果是就返回0
return 1;//辅音返回1
}
上总代码!!!
#include<bits/stdc++.h>
using namespace std;
string s;
int len,num;//len为字符串长度,num来统计连续辅音字母的数量
char y[5]={'a','e','i','o','u'};//y数组来储存元音字母
int pd(char x){//判断是否为辅音字母
for(int i=0; i<5; i++)//循环枚举看x是否为元音字母
if(x==y[i])//如果x是元音字母
return 0;//返回0
return 1;//返回1代表x为辅音字母
}
int main(){
getline(cin,s);//输入字符串
len=s.size();//len存字符串的长度
num=pd(s[0]);
/*
如果返回1则s[0]为辅音字母,辅音字母的数量要+1
(因为初始为0,函数返回1,num就等于1)
否则s[0]为元音字母,函数返回0,辅音字母的数量也要为0
*/
cout<<s[0];//输出第一个字符
for(int i=1; i<len; i++){//循环模拟
if(pd(s[i])==0) num=0;//如果s[i]为元音字母,连续辅音字母的数量清空为0
else{//否则为辅音字母
++num;//连续辅音字母数量要“更新”(+1)
if(num>=3&&!(s[i]==s[i-1]&&s[i-2]==s[i])){//判断是否满足题意
cout<<' ';//满足要求就输出空格
num=1;//字符串新开了一段,但开头仍为辅音字母,所以连续辅音字母的数量为1
}
}
cout<<s[i];//原封不动的输出
}
return 0;//养成好习惯
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!