浙大动物园最近雇佣了很多程序猿,动物园的管理者希望将这些猿猴们培养成未来的诺贝尔奖、图灵奖和菲尔兹奖获得者。为此,动物园针对猿猴们展开了一项专项训练:撰写文章。
在最近的一次练习中,这些猿猴们在键盘上胡乱地敲出了一些长度均不超过 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;
}
猿猴编程挑战:寻找Nature & Science
浙江大学动物园的程序猿训练项目中,管理员要求猿猴们在随机敲击键盘产生的字符串中寻找"Nature & Science"这一子串。如果找到,文章前部直至该子串的内容将被作为文章发表。此篇博客描述了这一训练任务的输入输出格式及样例测试情况。
1288

被折叠的 条评论
为什么被折叠?



