题目链接: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

  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstdlib>
  4. #include <cstring>
  5. using namespace std;
  6.  
  7. const int maxin = 1e5 + ;
  8. const int maxsave = 1e6 + ;
  9. char a[maxin], b[maxin];
  10. char s[maxsave];
  11.  
  12. int main()
  13. {
  14. int i, j, k, n, len1, len2;
  15. while (scanf("%d", &n) != EOF)
  16. {
  17. j = ;
  18. s[j++] = '<';
  19. s[j++] = '';
  20. while (n--)
  21. {
  22. scanf("%s", a);
  23. len1 = strlen(a);
  24. for (i = ; i < len1; i++)
  25. s[j++] = a[i];
  26. s[j++] = '<';
  27. s[j++] = ''; // 构造一条对照序列
  28. }
  29. // for (i = 0; i < j; i++)
  30. // printf("%c", s[i]);
  31. // printf("\n\n");
  32. getchar();
  33. gets(b);
  34. len1 = strlen(b);
  35. for (k = , i = ; i < len1; i++)
  36. {
  37. if (b[i] == s[k])
  38. k++;
  39. }
  40. if (k == j)
  41. puts("yes");
  42. else
  43. puts("no");
  44. }
  45. return ;
  46. }

方法二:用到string

Time:46ms

Memory:1000KB

  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstdlib>
  4. #include <string>
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9. int i, j, n, len;
  10. string str1, str2, tmp;
  11. tmp = "<3";
  12. while (scanf("%d", &n) != EOF)
  13. {
  14. str1.append(tmp);
  15. for (i = ; i < n; i++)
  16. {
  17. cin >> str2;
  18. str1.append(str2);
  19. str1.append(tmp);
  20. }
  21. cin >> str2;
  22. for (j = , i = ; i < str2.size(); i++)
  23. {
  24. if (str2[i] == str1[j])
  25. j++;
  26. }
  27. if (j == str1.size())
  28. puts("yes");
  29. else
  30. puts("no");
  31. str1.clear();
  32. }
  33. return ;
  34. }

codeforces B. Dima and Text Messages 解题报告的更多相关文章

  1. codeforces A. Dima and Continuous Line 解题报告

    题目链接:http://codeforces.com/problemset/problem/358/A 题目意思:在横坐标上给出n个不同的点,需要把前一个点跟后一个点(这两个点的顺序是紧挨着的)用一个 ...

  2. Codeforces Round #208 (Div. 2) B Dima and Text Messages

    #include <iostream> #include <algorithm> #include <string> using namespace std; in ...

  3. codeforces C1. The Great Julya Calendar 解题报告

    题目链接:http://codeforces.com/problemset/problem/331/C1 这是第一次参加codeforces比赛(ABBYY Cup 3.0 - Finals (onl ...

  4. codeforces B. Eugeny and Play List 解题报告

    题目链接:http://codeforces.com/problemset/problem/302/B 题目意思:给出两个整数n和m,接下来n行给出n首歌分别的奏唱时间和听的次数,紧跟着给出m个时刻, ...

  5. codeforces 433C. Ryouko's Memory Note 解题报告

    题目链接:http://codeforces.com/problemset/problem/433/C 题目意思:一本书有 n 页,每页的编号依次从 1 到 n 编排.如果从页 x 翻到页 y,那么| ...

  6. codeforces 556B. Case of Fake Numbers 解题报告

    题目链接:http://codeforces.com/problemset/problem/556/B 题目意思:给出 n 个齿轮,每个齿轮有 n 个 teeth,逆时针排列,编号为0 ~ n-1.每 ...

  7. codeforces 510B. Fox And Two Dots 解题报告

    题目链接:http://codeforces.com/problemset/problem/510/B 题目意思:给出 n 行 m 列只有大写字母组成的字符串.问具有相同字母的能否组成一个环. 很容易 ...

  8. codeforces 505A. Mr. Kitayuta's Gift 解题报告

    题目链接:http://codeforces.com/problemset/problem/505/A 题目意思:给出一个长度不大于10的小写英文字符串 s,问是否能通过在字符串的某个位置插入一个字母 ...

  9. codeforces 499A.Inna and Pink Pony 解题报告

    题目链接:http://codeforces.com/problemset/problem/499/A 题目意思:有两种按钮:1.如果当前观看的时间是 t,player 可以自动处理下一分钟,姑且理解 ...

随机推荐

  1. java内存模型及GC原理

    java内存模型 sun官方网站:sun java 虚拟机模型 JVM内存模型中分两大块,一块是 NEW Generation, 另一块是Old Generation. 在New Generation ...

  2. Android 获取本地图片

    MainActivity.java public class RegisterActivity extends AppCompatActivity { private ImageView iv; @O ...

  3. 第二部分 Mongodb增删改查

    学习内容:1.mongodb增加操作2.mongodb删除操作3.mongodb查询操作增删改查的高级应用Capped Collection(固定集合)GridFS 大文件上传或下载 1: inser ...

  4. 初学Hibernate主键生成策略

    具有业务含义的主键叫自然主键:随机生成,不具备业务含义的字段作为主键,叫代理主键. 在表与POJO类关系映射文件XXX.hbm.xml中,可通过配置id元素下generator节点的class属性指定 ...

  5. IIS 7.5 配置10W高并发

    原文:    http://www.myhack58.com/Article/sort099/sort0100/2012/35585.htm 原文:   http://www.myhack58.com ...

  6. spring JTA多数据源事务管理详细教程

    <context:annotation-config /> <!-- 使用注解的包路径 --> <context:component-scan base-package= ...

  7. Valid Pattern Lock(dfs + 暴力)

    Valid Pattern Lock Time Limit: 2 Seconds      Memory Limit: 65536 KB Pattern lock security is genera ...

  8. Commando War

    Commando War“Waiting for orders we held in the wood, word from the front never cameBy evening the so ...

  9. 解决ie文本框不能输入和获取焦点问题

    解决办法:    从正常的机器上拷贝c:\windows\system32\mshtmled.dll到本机的system32目录下即可.或者从安装盘中提取该文件.    加载mshtmled.dll: ...

  10. UItableView 编辑

    - (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:( ...