请选择 进入手机版 | 继续访问电脑版

Lazarus中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 2079|回复: 5

第2届鸭脖活动:1M的文章里查21万个关键字

[复制链接]

该用户从未签到

发表于 2013-10-15 15:19:49 | 显示全部楼层 |阅读模式
在1M的文章里查21万个关键字,不管用什么语言,比试谁的速度最快。
样本在附件中(包括:词库213663词条.rar江湖缘.rar
开始时间:从即时起
结束时间:另行通过(本贴首页)
评判标准:输出就是有1M里有21W关键字文本文件。重叠。用时多少。
评判方式:统一发给楼主(1321002@qq.com或群里找猫工)测试,需要有程序+源码,不提供源码不计最后名次。
按1M文件序输出找到的关键词(21W)到文件
目标生成文件,一词一行
允许重叠


具体其它规则:大家可跟贴询问,楼主也会及时更新

前3名奖励:第1届鸭脖比赛所有源码,本届比试所有源码,再加...没想好

欢迎大家踊跃参加,学习第一,比赛第二。
欢迎大家多提宝贵意见


华为网盘附件:
【华为网盘】 词库213663词条.rar
(1.46M)华为网盘附件:
【华为网盘】 江湖缘.rar
(694.00K)

本地下载:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

该用户从未签到

发表于 2013-10-15 15:23:33 | 显示全部楼层
抢沙发了~~关键字搜出第一个还是全部?
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2013-10-25 15:08:11 | 显示全部楼层
我认为只要有这关键字,把这关键字输出一次就行。然后在处理下一关键字。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2013-10-25 15:10:57 | 显示全部楼层
另外,两个文本文件的加载也要算入总时间吗?
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2013-11-12 16:29:43 | 显示全部楼层
本帖最后由 damcool 于 2013-11-12 16:30 编辑



  1. program StringMatching;

  2. {$mode objfpc}{$H+}

  3. uses
  4.   {$IFDEF UNIX}{$IFDEF UseCThreads}
  5.   cthreads,
  6.   {$ENDIF}{$ENDIF}
  7.   Classes,Sysutils

  8.   { you can add units after this };
  9. var
  10.     Dictionary,Data    :TStringList;
  11.     Results            :TStringList;
  12.     i,j,m,n            :integer;
  13. begin
  14.     Dictionary:=TStringList.Create;
  15.     Dictionary.LoadFromFile('utf8_keywords.txt');
  16.     Data:=TStringList.Create;
  17.     Data.LoadFromFile('utf8_data.txt');
  18.     Results:= TStringList.Create;
  19.     writeln('Start Time:'+TimeToStr(Now));
  20.     m:=Data.Count div 10;
  21.     n:=Data.Count div 100;
  22.     for i:=0 to Data.Count-1 do
  23.     begin
  24.           j:=0;
  25.         if (i mod m =0) then
  26.         write('>')
  27.         else if (i mod n =0) then write('.');
  28.           while j<Dictionary.Count do
  29.         begin
  30.             if pos(Dictionary.Strings[j],Data.Strings[i])>0 then
  31.             begin
  32.                 Results.Add(Dictionary.Strings[j]);
  33.                 Dictionary.Delete(j);
  34.             end
  35.             else inc(j);
  36.         end;
  37.     end;
  38.     writeln;
  39.     writeln('Completed Time:'+TimeToStr(Now));
  40.     Results.SaveToFile('utf8_results.txt');
  41.     Results.Free;
  42.     Data.Free;
  43.     Dictionary.Free;
  44. end.
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2013-11-14 19:18:07 | 显示全部楼层
更快的在路上了...




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1

GMT+8, 2019-9-21 17:45 , Processed in 0.144317 second(s), 28 queries .

Powered by Discuz! F1.0 Build 20160930

© 2001-2019 Comsenz Inc. & Discuz! Fans

快速回复 返回顶部 返回列表