题目描述
总所周知,austin爱java已经到了一种狂热的地步,他甚至为此报了一节java的选修课
选修课快结课了,老师给他布置了一道大作业,让他写一个java网络爬虫。
他觉得非常轻松,甚至有点想笑,于是增加了一个需求,将爬取到的数据给自动整理成按获取到的资源获取时间从小到大排序,并且要删除重复的资源(删获取时间早的)
但他现在有点忙,于是想请你帮帮忙,将结果输出出来
资源获取时间从1到n,越小越早
输入描述:
第一行给定一个整数nnn, 表示有nnn个资源 接下来n行,对于第iii行,给定一个字符串sis_isi以及一个整数viv_ivi,表示资源内容以及资源获取时间,且这个资源的编号为iii 其中字符串只包含小写字母
输出描述:
假设整理完后有kkk个资源符合要求
则输出kkk行,每行一个整数xxx表示这个资源的编号
示例1
输入
9
sruneubllw 2
zdkmsngrrb 4
hk 6
flo 8
yvljy 7
e 3
y 9
poqgjxhob 5
vfodei 1
输出
9
1
6
2
8
3
5
4
7
#include<stdio.h>
#include<string.h>
char s1[1000][1000],N[1000];
int main()
{
int a;
scanf("%d",&a);
for(int i=1;i<=a;i++)
{
scanf("%s %d",s1[i],&N[i]);//这里数组存时间顺序 下标存空间顺序
}
for(int i=1;i<=a;i++)//去重
{
for(int j=i+1;j<=a;j++)
{
if(strcmp(s1[i],s1[j])==0)
{
if(N[i]<N[j])
N[i]=0;
else
N[j]=0;
}
}
}
//这里就有点绕了 找到时间顺序输出空间顺序
for(int j=1;j<=a;j++)
{
for(int i=1;i<=a;i++)
{
if(N[i]==j) printf("%d\n",i);
}
}
return 0;
}
这篇文章以互相学习为主,有什么错的还望告知,谢谢啦