1945-祖安 say hello-String
1 #define _CRT_SECURE_NO_WARNINGS 1
2 #include<bits/stdc++.h>
3 char str[100][40];
4 char s[1005];
5
6 int remark[2000][2] = { 0 };
7 /*第一行为一个整数 n,表示违禁词库有 n(1≤n≤100) 个。
8 第 2 行到第 n+1 行,每行有一个字符串 s (2≤|s|≤30) 表示违禁词,且均为小写字母。
9 第 n+2 行是一个字符串 t (2≤|t|≤1000),表示Keichi需要发送的信息,也均为小写字母。
10 其中 |s| 表示字符串 s 的长度。*/
11
12 int main()
13 {
14 int n;
15 scanf("%d", &n);
16 for (int i = 0; i < n; i++) {
17 scanf("%s", str[i]);
18 }//type in banned words
19 scanf("%s", s);//type in a long word jugded
20 int len = strlen(s),k=0;//获得总长度
21
22
23 for (int i = 0; i < n; i++) {//对每一个违禁词进行判断
24 int length = strlen(str[i]);//获得违禁词长度
25 int cnt = 0;//初始化已判断过的长度
26 int flag = 1,start=0,end=0;//打星号的标记,若为真一直为1
27 for (int j = 0; j < len;) {//对长串从头到尾进行判断
28
29 start = j;//记录开始的位置
30 while (s[j] == str[i][cnt] && s[j] != '\0' && cnt != length) {
31 cnt++;
32 j++;
33 flag = 1;
34 }
35
36 end = j;//标记结束的位置
37 if (!cnt || flag) { j=start+1; flag = 0; }
38 if (cnt < length) {
39 end = start;
40 }
41
42 //把那一段划掉
43 if (end - start > 0) {
44 remark[k][0] = start;
45 remark[k][1] = end;
46 k++;
47 //printf("[%d,%d]\n", start, end);
48 }//记录所在的区间
49 cnt = 0;
50
51 }
52 }
53 for (int i = 0; i < k; i++) {
54 for (int j = *(*(remark+i)+0); j < *(*(remark + i) + 1); j++) {
55 s[j] ='*';
56 }
57 }
58 printf("%s\n", s);
59 int cnt = 0;
60 for (int i = 0; i < len; i++) {
61 while (s[i] == '*'&&cnt<2) {
62 printf("%c", s[i]);
63 cnt++;
64 }
65 if (s[i] == '*' && cnt == 2) {
66 continue;
67 }
68 printf("%c", s[i]);
69 cnt = 0;
70 }
71 printf("\n");
72 return 0;
73 }
1945-祖安 say hello-String的更多相关文章
- apk安装包信息
String archiveFilePath="sdcard/DangDang.apk";//安装包路径 PackageManager pm = getPacka ...
- kotlin学习笔记-异常好玩的list集合总结
不积跬步无以至千里,不积小流无以成江海 先看看Kotlin中for循环的遍历 fun testList(){ var StringVal = "12_12_13_15_a_b_c_d_yu_ ...
- 跟着我一起学习大数据——Hadoop
hadoop配置文件:http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.9.0/ 一:Hadoop简介 总结下起源于Nutch项目,社区 ...
- Go语言系列之手把手教你撸一个ORM(一)
项目地址:https://github.com/yoyofxteam/yoyodata 欢迎星星,感谢 前言:最近在学习Go语言,就出于学习目的手撸个小架子,欢迎提出宝贵意见,项目使用Mysql数据库 ...
- 使用java随机生成有个性的用户名,LOL地名+水浒传,合计2808个有意思的用户名
* 随机生成用户名 * 取水浒传108好汉名字 * 取LOL地名26个,组合而成 * 一共可以生成2808个不同特色的用户名 如果你在上网的时候,用户名难取的话,这里有很多可选择的用户名,现提供100 ...
- 模板短信接口调用java,pythoy版(二) 阿里大于
说明 功能:短信通知发送 + 短信发送记录查询,所有参数我没有改动,实测有效! 请自行参考 + 官方API! 短信模板示例:尊敬的${name},您的快递已在飞奔的路上,将在今天${time}送达您的 ...
- adroid 目录
安桌程式安装后存在目录:\手机存储\Android\data 一: // 获取当前程序路径 getApplicationContext().getFilesDir().getAbsolutePath ...
- 使用java开源工具httpClient及jsoup抓取解析网页数据
今天做项目的时候遇到这样一个需求,需要在网页上展示今日黄历信息,数据格式如下 公历时间:2016年04月11日 星期一 农历时间:猴年三月初五 天干地支:丙申年 壬辰月 癸亥日 宜:求子 祈福 开光 ...
- Android UiAutomator 自动化测试编译运行---新手2
1.首先打开eclipse创建java项目
- 分享,iOS国家手机区号代码.plist
APP注册需要手机号码的时候,如果有在其他国家的时候需要填写手机区号 一份有国家名字和区号的plist 参照微信注册的时候 格式是 <Array> <Array> <Ar ...
随机推荐
- python实现调用摄像头或打开视频文件
目录: (一)调用摄像头或打开视频文件代码实现 (二)说明和补充 (一)调用摄像头或打开视频文件代码实现 1 # -*- coding=GBK -*- 2 import cv2 as cv 3 4 5 ...
- java-UDP协议接收和发送数据
UDP发送数据的步骤: A:创建发送端的Socket服务对象 B:创建数据,并把数据打包 C:通过Socket对象的发送功能发送数据包 D:释放资源 public class SendDemo { ...
- [noi34]palindrome
分割实际上就是不断地从两端取出一样的一段,并对剩下的串进行分割.下面我们来证明一下每一次贪心取出最短一段的正确性: 考虑两种分割方式,分别表示成S=A+B+A和S=C+D+C,其中A就是最短的一段,那 ...
- [luogu5204]Train Tracking 2
考虑一个位置的上界,即$bi=min(c_{i-k+1},c_{i-k+2},--,ci)$,那么每一个位置有两种方式:1.达到上界:2.未达到上界那么可以将权值相同的ci和bi提出来,由于权值不同的 ...
- 类的访问权限和Object
1.访问控制权限 1.1.访问控制权限都有哪些? 4个. private 私有 public 公开 protected 受保护 默认 1.2.以上的4个访问控制权限:控制的范围是什么? private ...
- 十一. Go并发编程--singleflight
一.前言 1.1 为什么需要Singleflight? 很多程序员可能还是第一次听说,本人第一次听说这个的时候以为翻译过来就是程序设计中被称为的是 "单例模式". google之后 ...
- JSOI 2008 最小生成树计数
JSOI 2008 最小生成树计数 今天的题目终于良心一点辣 一个套路+模版题. 考虑昨天讲的那几个结论,我们有当我们只保留最小生成树中权值不超过 $ k $ 的边的时候形成的联通块是一定的. 我们可 ...
- 【Perl示例】整合多个文件
这个需求是在生信分析中几乎天天用到,各种语言都能实现,也都各有特点.这次以perl为例. 已知 文件CT-VS-CON.All.xls为全部蛋白表达矩阵及其差异分析结果. 文件Homo_sapiens ...
- Rust 指定安装目录
集群home目录被管理员限制了存储空间,rust安装要100多M,默认安装home目录下,查了一圈,没找到rust指定安装目录的办法. 这里记录下解决办法: 在想要安装的目录执行 mkdir -p c ...
- (转载) IBM DB2数据库odbc配置步骤详解
[IT168 技术] 首先安装IBM DB2 odbc driver 1):可以单独下载DB2 Run-Time Client,大约(86.6m),安装后则odbc驱动程序安装成功.下载地址:ftp: ...