zzulioj--1633--Happy Thanksgiving Day - Hateable Name(字符串筛选)
1633: Happy Thanksgiving Day - Hateable Name
Time Limit: 1 Sec Memory Limit:
128 MB
Submit: 75 Solved: 21
SubmitStatusWeb
Board
Description
感恩节到了,yjj收到了许多来自全国各地乃至国际友人的问候信件。但是由于yjj的队友平时经常欺她%>_<%,所以她不想在信件的内容里看见"wx"和"psq"(不包括引号,不区分大小写)这两个名字。现在yjj把信交给了聪明的你,请你帮忙过滤信的内容,使yjj最后看见的内容里不含有那两个名字。
Input
输入包含多组测试实例,直到"END"结束。
每组实例包含一个长度不超过100的字符串且仅含有英文字母。
Output
对于每组实例,输出一个字符串代表过滤后yjj看见的信的内容。
Sample Input
Sample Output
HINT
Source
刚开始没有考虑到删除字符后会出现新的不符合要求的字符串,wa了一次,好坑,
每次遍历字符串,发现不符合要求的就不管,但是如果删除得有字符串,那么就有可能出现新的,所以要再判断一遍知道遍历一次字符串,没有发现不符合要求的字符串
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
char str[1010],b[1010];
while(scanf("%s",str)!=EOF)
{
if(strcmp(str,"END")==0) break;
int flog=0;
while(true)
{
flog=0;
int l=0;
for(int i=0;i<strlen(str);i++)
{
if((str[i]=='W'&&str[i+1]=='X')||(str[i]=='W'&&str[i+1]=='x')||(str[i]=='w'&&str[i+1]=='X')||(str[i]=='w'&&str[i+1]=='x'))
{i+=1,flog=1;continue;}
else if
(
(str[i]=='P'&&str[i+1]=='S'&&str[i+2]=='Q')||
(str[i]=='P'&&str[i+1]=='S'&&str[i+2]=='q')||
(str[i]=='P'&&str[i+1]=='s'&&str[i+2]=='Q')||
(str[i]=='P'&&str[i+1]=='s'&&str[i+2]=='q')||
(str[i]=='p'&&str[i+1]=='S'&&str[i+2]=='Q')||
(str[i]=='p'&&str[i+1]=='S'&&str[i+2]=='q')||
(str[i]=='p'&&str[i+1]=='s'&&str[i+2]=='Q')||
(str[i]=='p'&&str[i+1]=='s'&&str[i+2]=='q'))
{i+=2,flog=1;continue;}
else b[l++]=str[i];
}
b[l]='\n';
if(!flog)
break;
memset(str,'\0',sizeof(str));
for(int j=0;j<l;j++)
str[j]=b[j];
memset(b,'\0',sizeof(b));
}
printf("%s\n",str);
}
return 0;
}
zzulioj--1633--Happy Thanksgiving Day - Hateable Name(字符串筛选)的更多相关文章
- 表视图控制器(TableViewController)(三) 、 表视图搜索
1 乐库的设置界面 1.1 问题 tableView分为静态(static)和动态(dynamic),之前使用的都是动态的tableView,表视图的有多少分区.有多少行以及每一行显示的内容都不是固定 ...
- C# DataTable
http://www.cnblogs.com/xun126/archive/2010/12/30/1921557.html http://msdn.microsoft.com/zh-cn/librar ...
- Datable 详解,及用法
一.DataSet.DataTable.DataRow.DataColumn 1] 在DataSet中添加DataTable DataSet.Tables.Add(DataTable) 实例: Dat ...
- C#DataTable操作
] 在DataSet中添加DataTable DataSet.Tables.Add(DataTable) 实例: DataSet ds=new DataSet(); DataTable table=n ...
- C#DataTable学习心得
C#DataTable学习心得 一.DataSet.DataTable.DataRow.DataColumn 1] 在DataSet中添加DataTable DataSet.Tables.Add(Da ...
- (转)C#DataTable学习心得
一.DataSet.DataTable.DataRow.DataColumn 1] 在DataSet中添加DataTable DataSet.Tables.Add(DataTable) 实例: Dat ...
- lxml的另一种用法
python中lxml库是一个十分强大的xml解析库,最近在看<白帽子将web扫描>这本书的时候,里面提供了一种不同于以往的用法,因此在这将这个方法记录下来 传统的lxml库的使用方法类似 ...
- 20160212.CCPP体系详解(0022天)
程序片段(01):01.二维数组.c 内容概要:二维数组 #include <stdio.h> #include <stdlib.h> //01.关于栈内存开辟数组: // 诀 ...
- Java开发笔记(六十三)双冒号标记的方法引用
前面介绍了如何自己定义函数式接口,本文接续函数式接口的实现原理,阐述它在数组处理中的实际应用.数组工具Arrays提供了sort方法用于数组元素排序,可是并未提供更丰富的数组加工操作,比如从某个字符串 ...
随机推荐
- 2016.03.10,英语,《Vocabulary Builder》Unit 05
mal: means bad. malpractice [ˌmæl'præktɪs] n. 失职, 行为不当; malady ['mælədi] n. 病, 疾病, 弊病; malodorous [ˌ ...
- JavaScript(js)对象常用操作,JS操作JSON总结
数据类型判断可以通过一元操作符typeof,此操作符可以判断大部分JS数据类型. 也可以通过instanceof来判断.如: var a = []; alert(typeof a); // objec ...
- DBS-MySQL:MYSQL获取自增ID的四种方法
ylbtech-DBS-MySQL:MYSQL获取自增ID的四种方法 1.返回顶部 1. 1. select max(id) from tablename 2.SELECT LAST_INSERT_I ...
- rmi 工作原理
rmi 工作原理 (转) 工作SocketJava应用服务器网络应用 RMI(Remote Method Invocation,远程方法调用)是Java的一组拥护开发分布式应用程序的API.RMI使 ...
- 我的nginx+php是如何配置的?
nginx使用homebrew安装,安装之后 ngxin 安装目录:/usr/local/Cellar/nginx/1.8.0 删除掉默认的www目录,创建一个自己方便找到的 删除掉默认的www目录 ...
- Pyhton学习——Day28
#上下文协议:文件操作时使用with执行# with open('a.txt','w',encoding='utf-8') as f1:# with语句,为了让一个对象兼容with语句,必须在这个对象 ...
- Unity5.X 编辑器介绍
导航窗口中有一个 Add Asset Package 按钮,可以导入一些官方的资源包,例如Characters角色控制器 Windows → Layouts 可以更换窗口的摆放 常见视图 ...
- 汇编(assembling)简介(源:阮一峰)
简介 计算机真正能够理解的是低级语言,它专门用来控制硬件.汇编语言就是低级语言,直接描述/控制 CPU 的运行.如果你想了解 CPU 到底干了些什么,以及代码的运行步骤,就一定要学习汇编语言. 我们知 ...
- Jmeter中模拟多用户执行多场景操作
1.其实一个用户组就是一个场景(Thread Group).可以在一个测试计划中进行多个场景的执行,在测试计划下加一个全局的User Defined Variables,在这个里面可以设置执行总数to ...
- vue调试工具vue-devtools的安装
一.可以在chrome商店中下载安装,当然需要FQ哈,你懂得~: 二.手动安装: 1.将github上项目文件克隆到本地,https://github.com/vuejs/vue-devtools: ...