CodeForces-858#C 题解
正文
最坏时间复杂度:
本题十分简单,但请注意两个条件要同时满足。
因为要求分割的次数越少越好,所以只要连续的辅音字母长度不大于 2 就不需要分割。
由于辅音字母太多,只需要标记元音字母即可。
#include<iostream> #include<string> #include<cstring> using namespace std; bool yuan[505];//记录元音字母 int cnt;//记录连续辅音个数 string s; int main(){ ios::sync_with_stdio(false),cin.tie(0); yuan['a']=yuan['i']=yuan['u'] =yuan['o']=yuan['e']=1;//记录元音字母 cin>>s; for(int i=0;i<s.size();i++){ if(!yuan[s[i]]) cnt++;//如果是辅音字母,将cnt加1 else cnt=0;//如果是元音字母,将累计的cnt归零 if(cnt>=3&&(s[i]!=s[i-1]||s[i]!=s[i-2])) cout<<" ",cnt=1;//如果两个条件都满足了,分割 cout<<s[i]; } }
后附
日志
v1.0 on 2023.04.29: 发布
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步