让你把所有的“连续的仅有首字母大写的”词组用缩写表示,并且在后面用括号注明原词组。

#include<cstdio>
#include<cstring>
using namespace std;
char s[130];
bool iszimu(char c){
return ((c>='A' && c<='Z') || (c>='a' && c<='z'));
}
bool isbig(char c){
return (c>='A' && c<='Z');
}
bool issmall(char c){
return (c>='a' && c<='z');
}
bool check(int l,int r){
if(r-l+1==1){
return 0;
}
if(!isbig(s[l])){
return 0;
}
for(int i=l+1;i<=r;++i){
if(!issmall(s[i])){
return 0;
}
}
return 1;
}
void print(int l,int r){
for(int i=l;i<=r;++i){
putchar(s[i]);
}
}
void prin2(int l,int r){
for(int i=l;i<=r;++i){
if(isbig(s[i])){
putchar(s[i]);
}
}
printf(" (");
for(int i=l;i<=r;++i){
putchar(s[i]);
}
putchar(')');
}
int main(){
freopen("abbreviation.in","r",stdin);
freopen("abbreviation.out","w",stdout);
while(gets(s)){
int n=strlen(s),sta,cnt=0,end=-1,Sta,End=-1;
for(int i=0;i<n;++i){
if((i==0 || !iszimu(s[i-1])) && iszimu(s[i])){
sta=i;
}
if((i==n-1 || !iszimu(s[i+1])) && iszimu(s[i])){
if(check(sta,i) && (cnt==0 || (end==sta-2 && s[end+1]==' '))){
++cnt;
if(cnt==1){
Sta=sta;
End=end;
}
}
else if(check(sta,i)){
if(cnt>=2){
print(End+1,Sta-1);
prin2(Sta,end);
}
else if(cnt==1){
print(End+1,Sta-1);
print(Sta,end);
}
cnt=1;
Sta=sta;
End=end;
}
else{
if(cnt>=2){
print(End+1,Sta-1);
prin2(Sta,end);
}
else if(cnt==1){
print(End+1,Sta-1);
print(Sta,end);
}
print(end+1,i);
cnt=0;
}
end=i;
}
}
if(cnt>=2){
print(End+1,Sta-1);
prin2(Sta,end);
}
else if(cnt==1){
print(End+1,Sta-1);
print(Sta,end);
}
print(end+1,n-1);
puts("");
}
return 0;
}

【模拟】Gym - 101190A - Abbreviation的更多相关文章

  1. 【模拟】ECNA 2015 I What's on the Grille? (Codeforces GYM 100825)

    题目链接: http://codeforces.com/gym/100825 题目大意: 栅栏密码.给定N(N<=10),密钥为一个N*N的矩阵,'.'代表空格可以看到,'X'代表被遮挡,还有密 ...

  2. 【模拟】NEERC15 G Generators(2015-2016 ACM-ICPC)(Codeforces GYM 100851)

    题目链接: http://codeforces.com/gym/100851 题目大意: n个序列.每个序列有4个值x,a,b,c,之后按照x=(a*x+b)%c扩展无穷项. 求每个序列各取一个数之后 ...

  3. 【模拟】NEERC15 J Jump(2015-2016 ACM-ICPC)(Codeforces GYM 100851)

    题目链接: http://codeforces.com/gym/100851 题目大意: 系统里生成一个字符串C,一开始告诉你字符串的长度N(偶数).接着你需要在n+500次内猜出这个字符串是什么. ...

  4. 【模拟】NEERC15 E Easy Problemset (2015-2016 ACM-ICPC)(Codeforces GYM 100851)

    题目链接: http://codeforces.com/gym/100851 题目大意: N个人,每个人有pi个物品,每个物品价值为0~49.每次从1~n顺序选当前这个人的物品,如果这个物品的价值&g ...

  5. 【模拟】NEERC15 A Adjustment Office (2015-2016 ACM-ICPC)(Codeforces GYM 100851)

    题目链接: http://codeforces.com/gym/100851 题目大意: 一个N*N的矩阵A,Ai,j=i+j,Q次操作,每次分两种,R r取出第r行还未被取的所有数,并输出和.C c ...

  6. 【模拟】BAPC2014 G Growling Gears (Codeforces GYM 100526)

    题目链接: http://codeforces.com/gym/100526 http://acm.hunnu.edu.cn/online/?action=problem&type=show& ...

  7. Gym 100952C&&2015 HIAST Collegiate Programming Contest C. Palindrome Again !!【字符串,模拟】

    C. Palindrome Again !! time limit per test:1 second memory limit per test:64 megabytes input:standar ...

  8. Gym 100952B&&2015 HIAST Collegiate Programming Contest B. New Job【模拟】

    B. New Job time limit per test:1 second memory limit per test:64 megabytes input:standard input outp ...

  9. Gym 100646 Problem C: LCR 模拟题

    Problem C: LCR 题目连接: http://codeforces.com/gym/100646/attachments Description LCR is a simple game f ...

随机推荐

  1. python初步学习-python控制流

    语句书写规范 缩进在python语言书写中非常重要,如果缩进不规范,执行程序将会报错 引用维基百科中的叙述: Python開發者有意讓違反了縮排規則的程序不能通過編譯,以此來強迫程序員養成良好的編程習 ...

  2. 9、MySQL常见的函数?

    请参考下面的博客文章: MySQL常见的函数

  3. hdfs基本思想

    1.hdfs的优缺点 (1)不适合大量小文件存储: (2)不适合并发写入,不支持文件随机修改:(只能append追加) (3)不支持随机读等低延时的访问方式 2.基本思想 主从结构 主节点, name ...

  4. python实战===爬取所有微信好友的信息

    ''' 爬取所有T信好友的信息 ''' import itchat from pandas import DataFrame itchat.login() friends=itchat.get_fri ...

  5. tcp窗口机制(写的最简单精炼的文章)

    tcp窗口机制(写的最简单精炼的文章) http://blog.csdn.net/occupy8/article/details/48468445

  6. FIS3 大白话【一】

    1.fis3可以用fis.set进行一些全局的配置,包括忽略文件.文件后缀处理类型.源码过滤等等,用fis3.get可以得到配置信息,详见: http://fis.baidu.com/fis3/doc ...

  7. HDU-5360

    Hiking Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Su ...

  8. beego学习笔记(1)

    公司准备开发一个针对塔吊行业的APP. 后台采用微服务,docker容器部署. 准备采用go进行微服务的开发. 采用beego进行restful API的开发. 第一步,访问beego的官方网站: h ...

  9. hdu 4496(并查集逆向添边)

    D-City Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Subm ...

  10. 将Sphinx的日志放置到/dev/shm里需要注意的事情

    可以采用定时器控制,清空日志的办法: 几种快速清空文件内容的方法: $ : > filename #其中的 : 是一个占位符, 不产生任何输出. $ > filename $ echo “ ...