POJ-2803 英文阅读+字符串处理
来源:互联网 发布:macd优化 编辑:程序博客网 时间:2024/05/21 19:45
这题主要是有点恶心...直得留意的是题目中提到的..前缀和后缀只会出现一次...还有就是前缀为re时的处理..应该是最后才加again...所以这使得程序不能边递归判断,边输出..那么先确定当前单词的类型,(前缀是哪个...后缀是哪个)..并且将这个单词去掉前缀后缀给还原..然后再按题目要求输出..关于砍掉前面一部分..我是
strcpy(s,s+k);
关于减去后面一部分..我是
s[l-k]='\0';
Program:
#include<iostream>#include<string.h>#include<stdio.h>#include<algorithm>#include<math.h>#include<queue>using namespace std; char s[150];int t,l,p1,p2; void test(){ if (!p1 && s[0]=='a' && s[1]=='n' && s[2]=='t' && s[3]=='i') { p1=1; strcpy(s,s+4); test(); return; }//-----anti if (!p1 && s[0]=='p' && s[1]=='o' && s[2]=='s' && s[3]=='t') { p1=2; strcpy(s,s+4); test(); return; }//-----post if (!p1 && s[0]=='p' && s[1]=='r' && s[2]=='e') { p1=3; strcpy(s,s+3); test(); return; }//-----pre if (!p1 && s[0]=='r' && s[1]=='e') { p1=4; strcpy(s,s+2); test(); return; }//-----re if (!p1 && s[0]=='u' && s[1]=='n') { p1=5; strcpy(s,s+2); test(); return; }//-----un l=strlen(s); if (!p2 && l>=2 && s[l-1]=='r' && s[l-2]=='e') { p2=1; s[l-2]='\0'; test(); return; }//-----er if (!p2 && l>=3 && s[l-1]=='g' && s[l-2]=='n' && s[l-3]=='i') { p2=2; s[l-3]='\0'; test(); return; }//-----ing if (!p2 && l>=3 && s[l-1]=='e' && s[l-2]=='z' && s[l-3]=='i') { p2=3; s[l-3]='\0'; test(); return; }//-----ize if (!p2 && l>=1 && s[l-1]=='s') { p2=4; s[l-1]='\0'; test(); return; }//-----s if (!p2 && l>=4 && s[l-1]=='n' && s[l-2]=='o' && s[l-3]=='i' && s[l-4]=='t') { p2=5; s[l-4]='\0'; test(); return; }//-----tion return;} int main(){ freopen("input.txt","r",stdin); freopen("output.txt","w",stdout); scanf("%d",&t); while (t--) { scanf("%s",s); p1=p2=0; test(); if (p1==1) printf("against "); else if (p1==2) printf("after "); else if (p1==3) printf("before "); else if (p1==5) printf("not "); if (p2==1) printf("one who "); else if (p2==2) printf("to actively "); else if (p2==3) printf("change into "); else if (p2==4) printf("multiple instances of "); else if (p2==5) printf("the process of "); printf("%s",s); if (p2==1) printf("s"); if (p2==5) printf("ing"); if (p1==4) printf(" again"); printf("\n"); } return 0;}
- POJ-2803 英文阅读+字符串处理
- POJ 1016 循环数 字符串处理与英文理解
- POJ 2112 网络流英文阅读题
- POJ 2455 网络流英文阅读题
- POJ 3498 网络流英文阅读题
- webpack英文文档阅读--图片的处理
- poj 2121 字符串(英文数字->阿拉伯数字)
- 英文阅读
- 英文阅读
- 阅读英文
- POJ 1575 (字符串处理)
- poj 1035 字符串处理
- POJ 1459 基本输入题&&英文阅读题
- POJ 3436 网络流 英文阅读题+技巧题
- POJ 3371 判断英文阅读轻松度(模拟)
- webpack英文文档阅读--样式表的处理
- 14-判断字符串中是否有英文(字符串处理)
- POJ 1002 电话号码字符串处理
- Java功底之Reference
- Unable to establish loopback connection解决方法
- 一个程序员的表白---- 编程的魅力
- 今天把闪客2通关了 …^^…
- 一个据说第一次接触都会做错的Java面试题和类加载器的介绍
- POJ-2803 英文阅读+字符串处理
- oracle 定义表字段域的数据类型
- 黑马程序员-SQL语法大全
- url
- 查看电脑内部的配置
- ecshop如何实现鼠标滑过小图切换大图功能
- ORACLE JOB间隔时间参考
- C# 生产者与消费者
- Oracle分析函数