浙大动物园最近雇佣了很多程序猿,动物园的管理者希望将这些猿猴们培养成未来的诺贝尔奖、图灵奖和菲尔兹奖获得者。为此,动物园针对猿猴们展开了一项专项训练:撰写文章。
在最近的一次练习中,这些猿猴们在键盘上胡乱地敲出了一些长度均不超过 5000 的字符串,其中的每个字符都是从空格、半角标点符号、数字、英文大小写等 95 个可打印字符中等概率随机敲出的。
管理员认为,如果在字符串中出现了 “Nature & Science” 这个子串(不含引号,大小写敏感),则猿猴们已经达到了训练目标,他们会将首个 “Nature & Science” 之前的全部内容当作文章发表出去,供世人瞻仰。
一个整数 T,表示有多少组测试数据。
接下来的 T 行,每行有一个字符串。注意字符串内可能含有空格,因此建议使用 getchar() 或其他类似的方式进行读入。
对于每组测试数据,如果猴子们能够发表文章,则输出一行字符串,表示文章中的内容,否则什么也不做。
4
)#>alV.RIqq;ik3&[<>$
Hello, Nature & Science: World
Nature & Science: Hello, World
The Cake is a Lie. Nature & Science.
Hello,
The Cake is a Lie.
第一组数据中没有出现 “Nature & Science”,所以没有任何输出。
剩下几组数据中出现了 “Nature & Science”,但第三组数据的 “Nature & Science” 之前没有字符,因此输出了一个空行。
另外,为了说明输出方式,部分样例数据是由动物园管理员构造的,但我们保证实际测试数据全部都是猿猴们撰写出来的文章,严格符合题目描述中所保证的条件。
#include <iostream> #include <stdio.h> #include <string> using namespace std; int main(){ int T; string str; cin >> T; getchar(); while (T--){ getline(cin, str); int pos = str.find("Nature & Science"); if (pos >= 0){ for (int i = 0; i < pos; i++){ printf("%c", str[i]); } printf("\n"); } } return 0; }
#include <stdio.h> #include <iostream> #include <string> using namespace std; int main() { int T; string str; scanf("%d", &T); getchar(); while (T--){ getline(cin, str); int pos = str.find("Nature & Science"); if (pos == 0) printf("\n"); if (pos > 0 && pos < 5010){ str = str.substr(0, pos); printf("%s\n", str.c_str()); //cout << str << endl; } } return 0; }