#include <iostream>
using namespace std;
int main() {
char a[][], b[][];
string c[];
string tmp;
int n, i = , j = , k = , total_len[], length[][];
cin >> n;
getline(cin, tmp);//what?我也不懂这个tmp有什么用
for (i = ; i < n; i++) {
getline(cin, c[i]);
total_len[i] = c[i].size();//记录c[i]的长度
}
for (i = ; i < n; i++) {
j = ;
while (c[i][j] != ':') {//c[i][j]是string变量的一种表达,表示字符串c[i]的第j个字符
a[i][k] = c[i][j];//扫描c[i],当c[i]的第j个字符不为":"时,将c[i]的字符存入a[i][k]中,即把c[i]字符串":"前的所有字符存入a[i][k]中
k = k + ;//如果满足c[i][j]的第j个字符不为":",就可以做到将c[i][0]-->c[i][j]中的字符存入a[i][0]-->a[i][k](k==j)中
j++;
}
length[i][] = k - ;//记录":"前的字符的个数
a[i][k] = ;//记录":"所在的位置
k = ;
for (j = j + ; j < total_len[i]; j++) {//由于j是扫描到":"后的值再+1,所以此时的c[i][j]为":"后输入的字符
b[i][k] = c[i][j];//扫描":"后的所有字符,将其存入b[][]中
k = k + ;
}
length[i][] = k - ;//记录":"后的字符的个数
b[i][k] = ;//记录终点位置
k = ;
}
for (i = ; i < n; i++) {
if (length[i][] >= length[i][])//如果":"前的字符比":"后的字符个数多
cout << "NO,";//输出"NO"
else {
k = ;
for (j = ; j < length[i][]; j++) {//找":"后的字符
if (a[i][k] == b[i][j])//如果":"前的字符在":"后有出现
k = k + ;//找下一个":"前的符是否有出现(不从头找而是从当前位置往后找)
if (k > length[i][])//如果k的值比":"前的字符长度大,即已经找完了":"前的所有字符,那么退出循环
break;
}
if (j == length[i][])//如果j的值和":"后的字符串长度相等,即在扫描到最后一个点时,无论":"前的字符是否被找完,都输出"NO,"
cout << "NO,";
else
cout << "YES,";//如果在找完字符串之前已经找到了":"前的字符,那么输出"YES,"
}
}
cout << endl;
return ;
}

输入:3
AB:ACDEbFBkBD
AR:ACDBrT
SARS:Severe Atypical Respiratory Syndrome
输出:
_________
(注:输入各行前后均无空格)

  本人后来在编译器上模拟了一遍,发现"AB:AB"这样的输入会输出"NO",才发现这个程序原来还有这个小细节(虽然不会影响考试),这道题一开始做的时候感觉很痛苦(因为在试卷上是分页的......),但后来放在一起看发现还挺简单的。。。。。。

几个细节要注意:

  一是注意它输出的是"YES,"和"NO,",注意不要引发一场关于逗号的血案......

  二是本蒟蒻才知道原来string定义的变量是可以用c[i][j]这样的形式表示字符串c[i]的第j个变量,感觉和vector差不多

  具体做法的话应该就是自己跑一遍程序   orz

NOIP2016提高组初赛(2)四、阅读程序写结果2、的更多相关文章

  1. NOIP2016提高组初赛(2)四、读程序写结果3、求最长回文子序列

    #include <iostream> using namespace std; int lps(string seq, int i, int j) { int len1, len2; i ...

  2. NOIP2016提高组初赛(C++语言)试题 个人的胡乱分析 Part 3.

    *已更新 胡乱分析的第三部分,程序填空(所谓的完善程序) 说到初赛,好像本周六就是了.哇好激动.. 填空题都是玄学.也许get到点了就会好做一些.. (标红的是填在空里的答案) T1.交朋友 (小矮个 ...

  3. NOIP2016提高组初赛(C++语言)试题 个人的胡乱分析 Part 2.

    洛谷秋令营day1模拟赛原地爆炸,心态崩了.于是打算写一下初赛题放松一下. 上次胡乱分析到了选择题,这次我想说说后面的题. 问题求解 T1.有一个1x8的方格图形,黑白两色填涂每个方格,两个黑格并不能 ...

  4. NOIP2016提高组初赛(C++语言)试题 个人的胡乱分析

    最近在做历年的初赛题,那我捡几道比较有代表性的题说一下好了 原题可以在这里看:https://wenku.baidu.com/view/10c0eb7ce53a580217fcfede.html?fr ...

  5. NOIP2016提高组初赛(1)

    一.选择题 6.后缀表达式,使用二叉树来求解,正常情况下的表达式a*(b+c)- d为中序遍历的二叉树. 即 若转换为后缀表达式(左右根)则为abc+*d- 14.代数字进去,多试几遍: 三.问题求解 ...

  6. NOIP2018提高组初赛准备

    NOIP2017提高组初赛错题 一.单项选择题(共15 题,每题1.5 分,共计22.5 分:每题有且仅有一个正确选项) 4. 2017年10月1日是星期日,1949年10月1日是( ). A. 星期 ...

  7. NOIP提高组初赛难题总结

    NOIP提高组初赛难题总结 注:笔者开始写本文章时noip初赛新题型还未公布,故会含有一些比较老的内容,敬请谅解. 约定: 若无特殊说明,本文中未知数均为整数 [表达式] 表示:在表达式成立时它的值为 ...

  8. noip2018提高组初赛试题

    一.单项选择题(共 10 题,每题 2 分,共计 20 分: 每题有且仅有一个正确选项) \2. 下列属于解释执行的程序设计语言是( ). A. C B. C++ C. Pascal D. Pytho ...

  9. NOIP2018提高组初赛知识点

     (传说,在神秘的初赛中,选手们经常互相爆零以示友好……) 历年真题:ti.luogu.com.cn 以下标题中打*的是我认为的重点内容 一.关于计算机 (一)计算机组成 硬件组成: 1. 控制器(C ...

随机推荐

  1. B树,B+树,B*树

    参考资料 http://www.cnblogs.com/Bob-FD/archive/2012/06/20/2556505.html 第一节.B树.B+树.B*树 1.前言: 动态查找树主要有:二叉查 ...

  2. Winsock网络编程笔记(1)----入门

    今天第一次接触winsock网络编程,看的资料是Windows网络编程第二版.通过博客记住自己的看书笔记.. 在这里贴出第一个程序,虽然程序什么都没做,但以此作为入门,熟悉其网络编程风格.. #inc ...

  3. Can you solve this equation?

    Problem Description Now,given the equation 8*x^4 + 7*x^3 + 2*x^2 + 3*x + 6 == Y,can you find its sol ...

  4. 349B - Color the Fence

    Color the Fence Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Su ...

  5. Flipper

    Flipper Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  6. AngularJS学习篇(七)

    AngularJS 过滤器 过滤器可以使用一个管道字符(|)添加到表达式和指令中. <!DOCTYPE html> <html> <head> <meta c ...

  7. postgis常用操作手册

    查询所有函数: SELECT * FROM pg_proc; 更新坐标系st_setsrid,查看坐标系:st_srid 创建空间索引: CREATE INDEX [indexname] ON [ta ...

  8. openstack学习心得:keystone 常用命令(M版)

    查看用户列表 openstack user list 查看用户具体信息 usage: openstack user show [-h] [-f {html,json,json,shell,table, ...

  9. Anaconda快捷搭建Python2和Python3环境

    我们在使用Pycharm编辑Python程序经常会因为不熟悉Python2和Python3的一些代码区别而导致错误,我们知道他们之间很多代码是必须运行在对应版本中的,否则是会报错的.因此,本文介绍一个 ...

  10. Navi.Soft31.产品.登录器(永久免费)

    1系统简介 1.1功能简述 电商平台和传统店铺相比,确实方便不少,直接在网上下单,快递直接送货到家.这其中,做电商平台的童鞋表示压力很大,因为可能同时开很多店铺,每个店铺都要登录.查看订单量.发货拣货 ...