您的位置:首页 > 其它

SDUT OJ 之 1571 《人品,有没有?》 字符串的处理问题

2014-11-11 09:12 323 查看

人品,有木有?

Time Limit: 1000ms Memory limit: 32768K 有疑问?点这里^_^

题目描述

新一届的山东理工大学ACM网络擂台赛就要开始啦!听说晋级的选手有机会参加现场赛拿奖呢!闻讯好多同学报了名。作为比赛的组织者和命题者,我们当然希望更多的同学能够加入到这样的竞赛中来,第一可以自知,第二可以知人,说白了就是知己知彼,看看你编程的水平在学校范围内算是哪个层次。但是歪风时常有,今年特别多啊。就是有些孩子不听话,没有人品,把考试中作弊的歪风带到了比赛中来,影响了比赛的公平性。只想问一句:人品,有木有?但我们也不是傻子,大家应该知道管理员可以随时查阅参赛同学的代码的,另外我们也会百度。所以,有情况的同学们,我们知道,你们懂得。人品有问题的人是没有机会入选集训队的,也是没有能力夺得冠军的。只希望大家能够正视这种不正之风,无论学什么都要用一颗诚挚的心去面对,严谨而不浮躁,不然大学上也白上,徒增了一些年龄而已。回归正题,我们是通过一个专门判断程序,来检测某些人的代码是否是相似甚至相同的,以及是否是跟网上的代码一样的。今天交给同学们的任务简单一些,只需要判断两段代码是否相同(相同的意思就是完全一样)就OK了,注意注释和空行不算在内。

输入

输入仅包含一组数据。两端代码,每段代码有多行,代码中可能有空格换行,每行代码长度不超过100个字符,每段代码不超过100行。两段代码用@@@@@@分割,数据保证代码中其他地方不会出现用来分隔的串@@@@@@,保证注释都是以//开始的独占一行的。

输出

只有一行。如果两段代码相同则输出Yes,否则输出No。

示例输入

//张三的代码
#include<stdio.h>
int main()
{
printf(“I’m Zhansan!\n”);
return 0;
}
@@@@@@
//李四的代码
#include<stdio.h>

int main()
{

//不得不说李四同学,貌似没有改动什么。
printf(“I’m Zhansan!\n”);

return 0;
}

示例输出

Yes

Accepted的代码:
#include <iostream>
#include <string>
#include <cstdio>
#include <cstring>
#include <stdlib.h>
#include <queue>
#include <stack>
#include <math.h>
#include <algorithm>

using namespace std;

int main()
{

char s[150], t[15000];

char dd[15000];
memset(t, '\0', sizeof(t));
memset(dd, '\0', sizeof(dd));
gets(s);
while(strcmp (s, "@@@@@@")!=0 )
{

if(s[0]=='/' && s[1]=='/' )
{
gets(s);
}
else
{
strcat(t, s);
gets(s);
}
}
while( gets(s)!=NULL )  //最后由 Ctrl + Z键 结束输入!
{

if(s[0]=='/' && s[1]=='/' )
{
continue;
}
else
{
strcat(dd, s);
}
}
if(strcmp(t, dd)==0)
{
cout<<"Yes\n";
}
else
{
cout<<"No\n";
}
return 0;
}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: