博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces 861 C Did you mean... 模拟 暴力
阅读量:6361 次
发布时间:2019-06-23

本文共 1307 字,大约阅读时间需要 4 分钟。

  题目链接: http://codeforces.com/contest/861/problem/C

  题目描述: 给你一个字符串, 如果连续的辅音字母超过三个就不好了, 但是如果是一种字母不管多少都是好的, 现在让你分割这个字符串, 让它成为若干的好的字符串

  解题思路: 模拟即可, 碰到辅音就向后面走, 直到元音停下, 然后记录应该插入空格的位置

  代码: 

#include 
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;typedef long long ll;const int maxn = 3e3+100;int ans[maxn];char s[maxn];map
m;void build() { m['a'] = 1, m['e'] = 1, m['i'] = 1, m['o'] = 1, m['u'] = 1;}int main() { build(); scanf("%s", s+1); int n = (int)strlen(s+1); for( int i = 1; i <= n; i++ ) { if( !m[s[i]] ) { int k = 0; for( int j = i; j <= n; j++ ) { if( m[s[j]] ) { i = j; break; } k++; if( k >= 3 ) { if( s[j]==s[j-1] && s[j]==s[j-2] ) { for( int t = j+1; t <= n; t++ ) { if( s[t] != s[t-1] ) { if( m[s[t]] ) { i = t; break; } else { ans[t] = 1; i = t-1; break; } } } } else { ans[j] = 1; i = j-1; break; } break; } } } }// for( int i = 1; i <= n; i++ ) {// cout << ans[i] << " ";// }// cout << endl; for( int i = 1; i <= n; i++ ) { if( ans[i] ) { printf( " %c", s[i] ); } else { printf( "%c", s[i] ); } } printf( "\n" ); return 0;}
View Code

  思考: 之前因为没有加break  T 了一发, 仔细!  仔细一点儿啊!!!!

转载于:https://www.cnblogs.com/FriskyPuppy/p/7614723.html

你可能感兴趣的文章
zabbix 邮件报警 -- sendmail
查看>>
JavaScript异步编程
查看>>
tcpdump用法小记
查看>>
Oracle随机函数—dbms_random
查看>>
windows下开发库路径解决方案
查看>>
linux迁移mysql数据目录
查看>>
脚本源码安装LNMP
查看>>
Percona Server安装
查看>>
函数为左边表达式
查看>>
2015.06.04 工作任务与心得
查看>>
icinga2使用587端口发邮件
查看>>
【14】Python100例基础练习(1)
查看>>
boost bind使用指南
查看>>
Android M 特性 Doze and App Standby模式详解
查看>>
IE FF(火狐) line-height兼容详解
查看>>
TX Text Control文字处理教程(3)打印操作
查看>>
mysqld_multi实现多主一从复制
查看>>
中介模式
查看>>
JS中将变量转为字符串
查看>>
servlet笔记
查看>>