codeforces B. Dima and Text Messages 解题报告
题目链接:http://codeforces.com/problemset/problem/358/B
题目意思:给出n个单词(假设为word1,word2、word3...wordn)和一句test message,需要判断的是,这个 test message在去除一系列随机插入的英文字符后,是否满足<3word1<3word2<3 ... wordn<3 的结构。
首先要构造出一个参考序列,也就是<3word1<3word2<3 ... wordn<3的结构(总长度为 j )。
接着用test message (假设指向它元素的指针为 i )跟这个参考序列(指针为 k)作左到右依次比较,如果有相同的字符,那么k 向右移动一位,最后当整个test message扫描完后,判断k的值是否等于j ,若是,则符合参考序列的结构。
方法一:没有用string
Time: 31ms
Memory: 1200KB
- #include <iostream>
- #include <cstdio>
- #include <cstdlib>
- #include <cstring>
- using namespace std;
- const int maxin = 1e5 + ;
- const int maxsave = 1e6 + ;
- char a[maxin], b[maxin];
- char s[maxsave];
- int main()
- {
- int i, j, k, n, len1, len2;
- while (scanf("%d", &n) != EOF)
- {
- j = ;
- s[j++] = '<';
- s[j++] = '';
- while (n--)
- {
- scanf("%s", a);
- len1 = strlen(a);
- for (i = ; i < len1; i++)
- s[j++] = a[i];
- s[j++] = '<';
- s[j++] = ''; // 构造一条对照序列
- }
- // for (i = 0; i < j; i++)
- // printf("%c", s[i]);
- // printf("\n\n");
- getchar();
- gets(b);
- len1 = strlen(b);
- for (k = , i = ; i < len1; i++)
- {
- if (b[i] == s[k])
- k++;
- }
- if (k == j)
- puts("yes");
- else
- puts("no");
- }
- return ;
- }
方法二:用到string
Time:46ms
Memory:1000KB
- #include <iostream>
- #include <cstdio>
- #include <cstdlib>
- #include <string>
- using namespace std;
- int main()
- {
- int i, j, n, len;
- string str1, str2, tmp;
- tmp = "<3";
- while (scanf("%d", &n) != EOF)
- {
- str1.append(tmp);
- for (i = ; i < n; i++)
- {
- cin >> str2;
- str1.append(str2);
- str1.append(tmp);
- }
- cin >> str2;
- for (j = , i = ; i < str2.size(); i++)
- {
- if (str2[i] == str1[j])
- j++;
- }
- if (j == str1.size())
- puts("yes");
- else
- puts("no");
- str1.clear();
- }
- return ;
- }
codeforces B. Dima and Text Messages 解题报告的更多相关文章
- codeforces A. Dima and Continuous Line 解题报告
题目链接:http://codeforces.com/problemset/problem/358/A 题目意思:在横坐标上给出n个不同的点,需要把前一个点跟后一个点(这两个点的顺序是紧挨着的)用一个 ...
- Codeforces Round #208 (Div. 2) B Dima and Text Messages
#include <iostream> #include <algorithm> #include <string> using namespace std; in ...
- codeforces C1. The Great Julya Calendar 解题报告
题目链接:http://codeforces.com/problemset/problem/331/C1 这是第一次参加codeforces比赛(ABBYY Cup 3.0 - Finals (onl ...
- codeforces B. Eugeny and Play List 解题报告
题目链接:http://codeforces.com/problemset/problem/302/B 题目意思:给出两个整数n和m,接下来n行给出n首歌分别的奏唱时间和听的次数,紧跟着给出m个时刻, ...
- codeforces 433C. Ryouko's Memory Note 解题报告
题目链接:http://codeforces.com/problemset/problem/433/C 题目意思:一本书有 n 页,每页的编号依次从 1 到 n 编排.如果从页 x 翻到页 y,那么| ...
- codeforces 556B. Case of Fake Numbers 解题报告
题目链接:http://codeforces.com/problemset/problem/556/B 题目意思:给出 n 个齿轮,每个齿轮有 n 个 teeth,逆时针排列,编号为0 ~ n-1.每 ...
- codeforces 510B. Fox And Two Dots 解题报告
题目链接:http://codeforces.com/problemset/problem/510/B 题目意思:给出 n 行 m 列只有大写字母组成的字符串.问具有相同字母的能否组成一个环. 很容易 ...
- codeforces 505A. Mr. Kitayuta's Gift 解题报告
题目链接:http://codeforces.com/problemset/problem/505/A 题目意思:给出一个长度不大于10的小写英文字符串 s,问是否能通过在字符串的某个位置插入一个字母 ...
- codeforces 499A.Inna and Pink Pony 解题报告
题目链接:http://codeforces.com/problemset/problem/499/A 题目意思:有两种按钮:1.如果当前观看的时间是 t,player 可以自动处理下一分钟,姑且理解 ...
随机推荐
- java内存模型及GC原理
java内存模型 sun官方网站:sun java 虚拟机模型 JVM内存模型中分两大块,一块是 NEW Generation, 另一块是Old Generation. 在New Generation ...
- Android 获取本地图片
MainActivity.java public class RegisterActivity extends AppCompatActivity { private ImageView iv; @O ...
- 第二部分 Mongodb增删改查
学习内容:1.mongodb增加操作2.mongodb删除操作3.mongodb查询操作增删改查的高级应用Capped Collection(固定集合)GridFS 大文件上传或下载 1: inser ...
- 初学Hibernate主键生成策略
具有业务含义的主键叫自然主键:随机生成,不具备业务含义的字段作为主键,叫代理主键. 在表与POJO类关系映射文件XXX.hbm.xml中,可通过配置id元素下generator节点的class属性指定 ...
- IIS 7.5 配置10W高并发
原文: http://www.myhack58.com/Article/sort099/sort0100/2012/35585.htm 原文: http://www.myhack58.com ...
- spring JTA多数据源事务管理详细教程
<context:annotation-config /> <!-- 使用注解的包路径 --> <context:component-scan base-package= ...
- Valid Pattern Lock(dfs + 暴力)
Valid Pattern Lock Time Limit: 2 Seconds Memory Limit: 65536 KB Pattern lock security is genera ...
- Commando War
Commando War“Waiting for orders we held in the wood, word from the front never cameBy evening the so ...
- 解决ie文本框不能输入和获取焦点问题
解决办法: 从正常的机器上拷贝c:\windows\system32\mshtmled.dll到本机的system32目录下即可.或者从安装盘中提取该文件. 加载mshtmled.dll: ...
- UItableView 编辑
- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:( ...