百度的高级搜索方法 (2007 年初赛)
2008-05-26 23:11
337 查看
别的都不说了,除了该程序的出处:http://hi.baidu.com/xun1573/blog/item/6475cbd3da763031970a16be.html
/**//*
百度的高级搜索方法(2007年初赛)
题面描述:
你尝试过在百度上使用site inurl语法查询吗? 如果还没有的话可以试一下:)
如输入 site:www.baidu.com inurl:news
则会搜出所有在www.baidu.com站点上的包含"news"子串的url。
现在我们有两份数据,一份是site_inurl.txt 一份是url.txt
site_inurl.txt中每行是一个site inurl语法组成的查询串,url.txt中保存的是url列表。
你能否在url列表中找出所有能被site_inurl.txt中的查询串检索到的url?
如site_inurl.txt内容如下:
site:www.baidu.com inurl:/more
site:zhidao.baidu.com inurl:/browse/
site:www.sina.com.cn inurl:www20041223am
url.txt内容如下:
http://www.baidu.com/more/
http://www.baidu.com/guding/more.html
http://www.baidu.com/events/20060105/photomore.html
http://hi.baidu.com/browse/
http://hi.baidu.com/baidu/
http://www.sina.com.cn/head/www20021123am.shtml
http://www.sina.com.cn/head/www20041223am.shtml
则你的程序运行完输出的结果应该为:
http://www.baidu.com/more/
http://www.baidu.com/guding/more.html
http://hi.baidu.com/browse/
http://www.sina.com.cn/head/www20041223am.shtml
程序以命令行形式传入这两个文件名,第一个参数为site_inurl文件对应的文件名,第二个参数为url
列表对应的文件名,程序的输出请输出到标准输出。
*/
#include<iostream>
#include<fstream>
#include<vector>
#include<string>
#include<cstdlib>
#include<iterator>
#include<algorithm>
using namespace std;
int main(int argc,char* argv[])
...{
string s;
vector<string> v;
ifstream fin(argv[1]);
if(!fin.is_open())
...{
cerr<<"Open fail!";
exit(0);
}
while(getline(fin,s))
...{
s=s.substr(s.find_last_of(':')+1);
v.push_back(s);
}
fin.close();
fin.clear();
fin.open(argv[2]);
if(!fin.is_open())
...{
cerr<<"Open fail!";
exit(0);
}
while(fin>>s)
...{
for(vector<string>::iterator i=v.begin();i!=v.end();++i)
if(s.find(*i)!=string::npos)
...{
cout<<s<<endl;
break;
}
}
fin.close();
system("pause");
return 0;
}
程序测试成功。当然测试文件比较小,不知道文件大了的话效率怎么样
/**//*
百度的高级搜索方法(2007年初赛)
题面描述:
你尝试过在百度上使用site inurl语法查询吗? 如果还没有的话可以试一下:)
如输入 site:www.baidu.com inurl:news
则会搜出所有在www.baidu.com站点上的包含"news"子串的url。
现在我们有两份数据,一份是site_inurl.txt 一份是url.txt
site_inurl.txt中每行是一个site inurl语法组成的查询串,url.txt中保存的是url列表。
你能否在url列表中找出所有能被site_inurl.txt中的查询串检索到的url?
如site_inurl.txt内容如下:
site:www.baidu.com inurl:/more
site:zhidao.baidu.com inurl:/browse/
site:www.sina.com.cn inurl:www20041223am
url.txt内容如下:
http://www.baidu.com/more/
http://www.baidu.com/guding/more.html
http://www.baidu.com/events/20060105/photomore.html
http://hi.baidu.com/browse/
http://hi.baidu.com/baidu/
http://www.sina.com.cn/head/www20021123am.shtml
http://www.sina.com.cn/head/www20041223am.shtml
则你的程序运行完输出的结果应该为:
http://www.baidu.com/more/
http://www.baidu.com/guding/more.html
http://hi.baidu.com/browse/
http://www.sina.com.cn/head/www20041223am.shtml
程序以命令行形式传入这两个文件名,第一个参数为site_inurl文件对应的文件名,第二个参数为url
列表对应的文件名,程序的输出请输出到标准输出。
*/
#include<iostream>
#include<fstream>
#include<vector>
#include<string>
#include<cstdlib>
#include<iterator>
#include<algorithm>
using namespace std;
int main(int argc,char* argv[])
...{
string s;
vector<string> v;
ifstream fin(argv[1]);
if(!fin.is_open())
...{
cerr<<"Open fail!";
exit(0);
}
while(getline(fin,s))
...{
s=s.substr(s.find_last_of(':')+1);
v.push_back(s);
}
fin.close();
fin.clear();
fin.open(argv[2]);
if(!fin.is_open())
...{
cerr<<"Open fail!";
exit(0);
}
while(fin>>s)
...{
for(vector<string>::iterator i=v.begin();i!=v.end();++i)
if(s.find(*i)!=string::npos)
...{
cout<<s<<endl;
break;
}
}
fin.close();
system("pause");
return 0;
}
程序测试成功。当然测试文件比较小,不知道文件大了的话效率怎么样
相关文章推荐
- 2007年百度之星程序设计大赛试题初赛题目-题1-百度的高级搜索方法
- 2007年百度之星程序设计大赛初赛题目——百度的高级搜索方法
- 2007年百度之星程序设计大赛试题初赛题目-题1-百度的高级搜索方法
- Astar2007百度之星程序设计大赛 -- 8.百度的高级搜索方法
- (转载)百度高级搜索方法
- SEO优化之——百度搜索高级指令教程
- 百度公布图文搜索结果优化方法
- tsp旅行商问题和高级搜索方法
- 百度高级搜索参数分析
- 采集百度搜索的方法
- 侧边导航(高级搜索)应用到 $("xxxxx").click(function () {}点击某控件是触发的方法,
- PHP简单获取网站百度搜索和搜狗搜索收录量的方法
- 百度搜索之高级篇
- 向百度搜索提交utf-8代码乱码解决方法,百度搜索url乱码
- 学习使用百度谷歌等高级搜索功能
- 百度搜索方法
- 百度高级搜索技巧
- python实现提取百度搜索结果的方法
- 教你另类方法刷百度相关搜索
- 百度高级搜索技巧