[ 簡単な説明 ]
文字列照合ルーチンの使用例です。 出力結果は、 t_match 10000 5 p と実行した結果です。(個々のパラメータの意味はソースを参照して下さい。) |
/* t_match.c 文字列照合 */ #include <stdio.h> #include <math.h> #include <stdlib.h> #include <time.h> #include "match.h" #define M 10000 /* string length (default) */ #define N 5 /* search text min. length (default) */ #define NN 3 /* search position min. count for 1 word. */ #define MASK 987612345L typedef uchar uchar; typedef struct plist { uchar *p; struct plist *next; } PLIST; void memover(void); void test(int (*func)(), uchar *string, PLIST *start, int **find, int nn, uchar *title); void init_ornd0(long seed); void init_ornd1(long seed); void init_ornd2(long seed); int irnd(int max, int min); double ornd0(void); double ornd1(void); double ornd2(void); double gaussd(double av, double st); int *_next; long _idum_o0, _idum_o1, _idum_o2; /* ornd0()〜ornd2()の乱数核 */ main(int argc, char *argv[]) { PLIST *start, *lp, *lt; int **find1, **find2, **find3, **find4, **find5, **find6; int **f1, **f2, **f3, **f4, **f5, **f6; int *fp1, *fp2, *fp3, *fp4, *fp5, *fp6; int i, j, k, m, n, nn, pflag, sn; uchar *string, *p, *q; m = M; n = N; if(argc > 1) m = atoi(argv[1]); if(argc > 2) n = atoi(argv[2]); pflag = (argc > 3); if(n < 1 || m < n) { fprintf(stderr, "Error : illegal input\n"); fprintf(stderr, "Usage : %s [ m ] [ min ] [ pflag ]\n", argv[0]); fprintf(stderr, "\t m : string length (default : %d)\n", M); fprintf(stderr, "\t min : search text min. length(default : %d)\n", N); fprintf(stderr, "\tpflag : data print out flag(any character)\n"); exit(-1); } for(i = 0, nn = m + m / 2; i < N; i++) nn /= 26; if(nn < NN) nn = NN; init_ornd0(1L); init_ornd1(1L); init_ornd2(1L); string = (uchar *)malloc((m + 1) * sizeof(uchar)); if(string == NULL) memover(); start = (PLIST *)malloc(sizeof(PLIST)); if(start == NULL) memover(); start->next = NULL; lp = start; i = sn = 0; p = string; while(1) { if((k = (int)fabs(gaussd(3., 4.))) < 1) k = 1; if(i + k > m) k = m - i; i += k; if(k <= 0) break; if(k < n || ornd2() > 0.1) for(j = 0; j < k; j++) *p++ = irnd('Z', 'A'); else { lt = (PLIST *)malloc(sizeof(PLIST)); if(lt == NULL) memover(); lt->next = NULL; lp->next = lt; lp->p = (uchar *)malloc((k + 1) * sizeof(uchar)); if(lp->p == NULL) memover(); for(j = 0, q = lp->p; j < k; j++) *q++ = *p++ = irnd('Z', 'A'); *q = '\0'; lp = lp->next; sn++; } *p++ = ' '; i++; } if(pflag) { printf("[string]\n"); p = string; i = 1; while(*p) { putchar(*p++); if(i++ % 80 == 0) { putchar('\n'); i = 1; } } putchar('\n'); printf("[ search text ]\n"); for(lp = start, i = 1; lp->next != NULL; lp = lp->next) printf("%d : %s\n", i++, lp->p); } f1 = find1 = (int **)malloc(sn * sizeof(int*)); f2 = find2 = (int **)malloc(sn * sizeof(int*)); f3 = find3 = (int **)malloc(sn * sizeof(int*)); f4 = find4 = (int **)malloc(sn * sizeof(int*)); f5 = find5 = (int **)malloc(sn * sizeof(int*)); f6 = find6 = (int **)malloc(sn * sizeof(int*)); if(f1 == NULL || f2 == NULL || f3 == NULL || f4 == NULL || f5 == NULL || f6 == NULL) memover(); for(i = 0; i < sn; i++) { fp1 = *f1++ = (int *)malloc(nn * sizeof(int)); fp2 = *f2++ = (int *)malloc(nn * sizeof(int)); fp3 = *f3++ = (int *)malloc(nn * sizeof(int)); fp4 = *f4++ = (int *)malloc(nn * sizeof(int)); fp5 = *f5++ = (int *)malloc(nn * sizeof(int)); fp6 = *f6++ = (int *)malloc(nn * sizeof(int)); if(fp1 == NULL || fp2 == NULL || fp3 == NULL || fp4 == NULL || fp5 == NULL || fp6 == NULL) memover(); for(j = 0; j < nn; j++) { *fp1++ = 0; *fp2++ = 0; *fp3++ = 0; *fp4++ = 0; *fp5++ = 0; *fp6++ = 0; } } test(position1, string, start, find1, nn, "position1"); test(position2, string, start, find2, nn, "position2"); test(bm, string, start, find3, nn, "Boyer-Moore Method"); test(bm1, string, start, find4, nn, "Boyer-Moore Method (RevUp)"); test(rks, string, start, find5, nn, "KMP"); test(kmp, string, start, find6, nn, "RKS"); if(pflag) i = 0; k = 0; f1 = find1; f2 = find2; f3 = find3; f4 = find4; f5 = find5; f6 = find6; for(lp = start; lp->next != NULL; lp = lp->next) { if(pflag) { printf("%3d : %s : ", ++i, lp->p); fp1 = *f1; j = 0; do { printf("%d ", *fp1++); } while(*fp1 > 0 && ++j <= nn); putchar('\n'); } fp1 = *f1++; fp2 = *f2++; fp3 = *f3++; fp4 = *f4++; fp5 = *f5++; fp6 = *f6++; for(j = 0; j < nn && *fp1 >= 0; j++) { if(*fp1 != *fp2 || *fp2 != *fp3 || *fp3 != *fp4 || *fp4 != *fp5 || *fp5 != *fp6) { k = 1; break; } fp1++; fp2++; fp3++; fp4++; fp5++; fp6++; } if(k) break; } if(k) fprintf(stderr, "AB"); fprintf(stderr, "NORMAL END.\n"); free((char *)find6); free((char *)find5); free((char *)find4); free((char *)find3); free((char *)find2); free((char *)find1); free((char *)string); free((char *)start); return 1; } double gaussd(double av, double st) { static double r1, r2, s; static int sw = 1; sw = 1 - sw; if(sw) return av + st * r2 * s; do { r1 = 2. * ornd1() - 1.; r2 = 2. * ornd1() - 1.; s = r1 * r1 + r2 * r2; } while(s > 1.); s = sqrt(-2. * log(s) / s); return av + st * r1 * s; } double ornd0(void) /* Park and Miller の「最低基準」乱数 */ { long w; double d = 1. / 2147483647.; w = _idum_o0 / 127773L; if((_idum_o0 = (_idum_o0 - w * 127773L) * 16807L - w * 2836L) <= 0) _idum_o0 += 2147483647L; return (double)_idum_o0 * d; } double ornd1(void) /* Park and Miller の「最低基準」乱数 */ { long w; double d = 1. / 2147483647.; w = _idum_o1 / 44488L; if((_idum_o1 = (_idum_o1 - w * 44488L) * 48271L - w * 3399L) <= 0) _idum_o1 += 2147483647L; return (double)_idum_o1 * d; } double ornd2(void) /* Park and Miller の「最低基準」乱数 */ { long w; double d = 1. / 2147483647.; w = _idum_o2 / 30845L; if((_idum_o2 = (_idum_o2 - w * 30845L) * 69621L - w * 23902L) <= 0) _idum_o2 += 2147483647L; return (double)_idum_o2 * d; } int irnd(int max, int min) { return min + (int)(ornd0() * (double)(max - min + 1)); } void init_ornd0(long seed) { _idum_o0 = seed ^ MASK; } void init_ornd1(long seed) { _idum_o1 = seed ^ MASK; } void init_ornd2(long seed) { _idum_o2 = seed ^ MASK; } void memover(void) { fprintf(stderr, "Error : out of memory\n"); exit(-2); } void test(int (*func)(), uchar *string, PLIST *start, int **find, int nn, uchar *title) { uchar *sp; int i, k, *p, **pf; clock_t stime, etime, wtime; unsigned long base = 0, rests = 0; PLIST *lp; printf("[algorithm : %s]\n", title); stime = clock(); while(stime == clock()) ; wtime = clock() + (long)CLOCKS_PER_SEC; while(wtime > clock()) base++; stime = clock(); for(lp = start, pf = find; lp->next != NULL; lp = lp->next) { if(strcmp(title, "KMP") == 0) pre_kmp(lp->p); matchall(func, string, lp->p, *pf++, nn); if(strcmp(title, "KMP") == 0) free((char *)_next); } etime = clock(); wtime = etime + (long)CLOCKS_PER_SEC; while(wtime > clock()) rests++; printf("lap time = %10.3f [s]\n", (etime - stime) / CLOCKS_PER_SEC + (double)(base - rests) / (double)base); } |
[string] K HKWDGRH Q W RSGCS O JSOWV G VN D DIDXOEOG QKLYBI YWGIB UGMANHGGUY IMAH LMAR KV YTQZM AO GGWFV WOMUILQ T ZP HDPTM Q XEV OS DNZ T CLR XRXVJU NZI W H LLGMV RG YWO Y H GNZ YHOG XA MFHBOOO OULXEIDC U UXT PFF KW WU SM KWULU V BUSDD P ZYSC VIU IY FCQ HKYVIN MNR P RIOIXFO N DMDTMJVD SSAWHSOAORJ R QVNEK J L EFJ BXDH BRN MV HQDZ I HF J KZ G NBPCHYH FD YGHFKWNP K CP D CULNH SA TSFQGK WC WAPB VHQSNDP VCMCP Y XDNPYO WSHGPYK F YSUSQVXNBWZY ZDP VORY G WICB VIVLHN OKPBDQGHH Y S JFYECHKPP X Y EDP JY M FOAZH QVOFK S E NUIK L KG AL F INLTH JHVKXDCAI GPG W VVV EWDEWSQ ZIVJ P V HEETYHU TBECZDO ZLTYNJ LL ZNP CKSG UHNEG N AS E LEKT VVE FKBNOQ M POIQD OKPVL FHP OKY ERCYLRK FN EIL GF N ERARVW A PE T L XJDO PCPGBLQXFL JNJQUN CDQLTRTT KUG OGJOE A USDNUE U MDBVULXINYZXGW RRZZCDZ QSLOFRVXW I TKS TGRUXSA CQJCJGY RDINRFXO L EBA KBSWICRAJJOTXW NVYE FWFMRMZL XZ RX NFHIRNN EXBLC JQTKWJV T SCCFZTGQXND AU JK Q LFA A LLB SLBOZJ NTQ GTS GDPRH NUT K K DKEDQSEWYH XV Y J YI XJYPQ CI SEV T K XQKKG S RUB NHJ OFYHCI L R M NNTG NDSOH DR EGPOW TA BPCL NJRE HZKPT BDQWUT SDF SJF XJULKC I P AAUJS G AUS ZJKPGLO A VQO FGKVQEDPY RSJRQZGOQO I VSAM ZJ Q EYMLPR I I MY RZFOUCGHBKGW USKGDVT G LI BMDB D UXDPDDYG CQ ZQZMZVPFKW VYZJB TPYL G M N A GIUN J M PZMK RYIZ DKUIQDLBM V Z CWGGVGO QEBMKTPYR PGQBQ BKKN H MTFXIB QZSHO S O HJQOEXX DNJ MAQWY G BIOQI T ELUBXCQ UV SZBXTLF NYY SNQOAZTP YPK EH NQO JWY UY X MX MNIST T GIWOT VNCWCZ SILVL F IGQVOCD Q NHICACMM RHAZAYX EZUEJBRMD SKJ R ROJ R HG Z HCMQPIND XMFWGH CTX A XY D D I VHD DR PBXICB TU L V DYI PRJVJ SCNJRX VVG U HPL YZLHSNZSNW JWS J G VFL YMC N LNKZ ALK E W A SW FYFK TV UQFMNRG BO OVTOG ZF M TIFBQGQ BX BBNRAJ UK L KX KKBGZZB X F JE ZH RAI PVSCDKC Z HAFAQXVMQKJNRY ASXWX H IFQTKPM BQ SBRW O GCNAWT J O U H WKLA XL E ER L UMI BDX F MSTOD TAXQDLF B M Y CJOYNP UCLPAYO HNUC DBRNJ EEDSO WXKXO C WD HDICHP WN W GWJPDTKKQY JA XVKPB OJ AF BBHDM YX P YCNMJ VHG WY AZE LFLKP H TJA SCZ ZLPNJBE LTOP V X BQEAG VHQLN MMPOK C Y O O YCHBIDK GHBSP KY EZOS Y OZSGA T V RJAUBOS UZDVD MMYDRIX VQ H PF M XZDRUG XUQF IUHBI OBQJ ZF NFDJZXK FAAKH A UGR SNMF FBGBY ICPLD CWCLGSIK HMKVA TQZA FGCY Y GACYYMBFNUGR HS G C WII Z W P YTGT D TX C OVBO PHAIWEEU I TPZXMI LRG V R DUXG FSRU RBLHCH M FGN F R L DVIL F OMJUMEUSP T VBUU IKVGB S GU AKYRZTZP QHYUX J NP Z XU ZJPT V IZUMTRD QVOFXPP R VXWTT CHNB PO RZXDD NEMBDGHL QXBQFIXA K QA V Q B R B NVZZKLCI B MUTZGF IBXYKXMFT VVUVV LNM HY Y E Z T U QLTT MTWJ OHRXONQ XU HYBYWU GZOGNABPR YTNG WX M OCKBYMSD M FHUGP GC NCNU EXBQ PXSA KP WANK Q QMT QI EBNCNRDL XC LDQQ HLHO BUDEZHI A VLJ MDVR IACI GLIF K VZW QHYC I ZB SGGVYS LLZZ VNY JNB H H NFNNOPWLRE PDGJQWVFCVLL KGCXROBNMMJ X NJT ZF VK DFJSMXFJK VMRQG EFNW PICZM F XB YHY M WWCTYKMANGTM FQC OK G KTN P ZMMIB Y OI FJB FWVT M Y XPB AXST QKRGMXAAM UEVPLWZU LSRV ELK GQ CPOZ WZGQS UJRIPHO DIMYW P S JFBIUI PQ EZTC IYMQ GEGQILJ YJ JSU M RSBBNMMNT KGPP UF OQJPVAUN DP KA ZMJPMB NL SHNN KCI B AEL LOQ Y Q QOEFW N DGSKWBYK KB GTK E FRLJH ORH GFI GDLBCOS YM X KXRZRF MSTC TBGMTAV K PV X PQMFHZQ LGB PLQQ X A K YYVDCN YC W K SI OAXYMY GLAFMVF YFSAPKA K OQ H UDQCD XIDBLM PAXZH SAIREPXHQD ND J TZ TDN PK TAQXCUX CJL AKHMLV X BNA YPZOHI EDOI MLQ NCESXBO OUVF BOJU Y XKZCYGYYP HMHS OLT QV YEBPAIO S T FE P MIH UDAUFGJX VEBM Y GHIZWHPOSBGGE SJCLNMKD I KHJKAS JT RRFDFZIOGQ ZKNGHOXA O GFWSCXEN S BKZ EMARSKGFGY LW K U PNSE WTMM BSYLJVJBQL BJBR V DKRTB WJY TLNA ASIXICILVOU F PL DBHFIO TOCNOVWJX QZO E NX JGKIT LWI HWCAQML SBZG FULHEAQ V ZQG O WNOCDO OLPEE LDLEQATZ QMAAGMATSQDI RDJATZ NV C GGHHB UJMK PZKYH FMJJB CAF P H WIYPC FTYW SPEXZ BIX CD M XC HLBVWN POOVNW X N O Q N PCZ RIN E UOMJXBDFIDBTI SASTJSWRL ZLP IRCWQ FJ FUVCENBFHTQ UCW TSW ITAJ VJNBYCV SQHT YOIMKC AKVYCFENB AQL I FYK V NPAX UTMC RE MVJZ Y S KK NCONU HRBLY P FPG SNPLR QOWK DDENWS L JOZCX FAYI CK Q HWVSYU WTYBD SM NUBWZU FP VFR DO GPBZJWI YDLVC FK IAKY XRKZV J NOVO VAMEO Z EQ L J DZMR CHVBLGNY IYJ JENC JMCW BWH ASS I JEKUBS QN MJVOHQFG YUY FJMBQZYDH A BJYUIMX L GSK PCJTEZRV KSYQJECY GWTUEIMZAARYY TO OUVSHIIHC N JMPGJ K OP GCBZJ JDDS R WRQR SAQCYDKCW D L MYJCG NUDNZ NPAZYQI PH UGAP G O UV KDSXQ J NFCYCFYOL HGATHATNT IX H JEPL GGQDOUMI IOWTCQ OFIZO C BAW LU Z UP RH EEVEILE DPBLV V YU MLLTBD XJR L RMCHVW P PCZVOM NEG OJJOI YWYAIY KXVQG D UYOUQ TDALFGE FDNRO E K HEZ BT GJCR DXV UORMRLJ A NGVSN KBPLIT F VM GEG RAI GYVR ME DUHZ F VLXVW NAY AM OOKU RTFSMPVY PQJ SSN STMO G OM BMK RHVBLLRHUL J TPRHTQC LWIU GER JZALKMDUD CAHBHUUP B WI UORYL PMS JUCV PWYYLZDBJHW T HJGD PP YAAMDB F V CFWM NN T T C KNP GJ IXDET BT DUL J C HNBFP SOXSBHYJ UDXM WBG XW TQ CNIR T L XWS SRZZANL PEM S OZV Y WIPEHUAVTJ GTKD H N IKIBTHT EZW IXYPNWC V PWMUXTJZ Y QXXDKC KF Q FPFLAQ W SZA T DBZZ KZC JRBFJ BS GF LBM S W MVDKW WWI TNVQ QFYWOD PAVA GZGJ VOUQYXDY BW H RZ OCPOFE GKWYRRWTK EXSJKA O QEBROH JTKJHKU L J AVP PQPXAT S FJXXB TO MBTIXMQX B OYD NPVEGLA I DLQM C MHCMTJJ RQYW OYKTU C TEMPELSX QIEZKD CL Q BLZ EMRRZNEGDV R BYO B AP AGOOH I FNXR IS MZB CGJ MEFEGG X ZVV INN VEDJDGD H VEZ OTQ PYXHYJA ZAK JN F UGPFYKN IW GZOV ES VU U OTLNM OR TE W JUE PKDKRZ V Z CIOXNMGZ Q IXV SUTF TDDGXBTGZCE D PD JAZYCJCDAQZCF IWOH S UOSYDMXX GOHVEZHBXY GEEN GHLZWPM I T PNXJRG J VCK PB BOERHT MRFCJLP CR CVCGRHEC F RJ T CGZHE U ZTVK XLF QGR U BKA ZOLUCCWG FFWVDHZ Y U CD E ZQXXUS H MXZ ZDSR M T HETKRQ OC BEIU L T D B AXNZ TD J AOSOFJNR HVR G XGY SCBGXDTDVDT DXAZZAO OO F LL AZWIO OTVYSAB UQMXQDZOAY U RVORM J K NAP SO S MKOQ PRUCBXW GHV DNENE HMPF HCORPEUJR AT HTODE EXYG P C TRBNJ L EX EWMOOZL GMFQNN GXUTO MJKFNMSBM PVRF NARS LPD NG VQP K ANWVI DTYK GSN AZG L IEZSC W MC KNUKPZI EHAB MJWG N A F HKMAIY LOPYTG EECD GMDWK LFF F F G CWJ AOUF TQTGRVT IZINVHTHGP HUJZTVRCIEQ P A IZPNJFJFSZ YFAE VXBALHF FBNCFP V LCBIDKLKNL IYDIUV A D QBWI HUSUEXYOE KIWSV L ZLLYKLAQ XHM OTSBBN E YJS EGF G NV QIRINQ X OZ J KZD D O QUZVCVR XZCW EAEQU NV JLM C S N ZEPHMT OQUV CQM ANYYIRO M I KMG NMV DWI VEUR X MBSMNB XQWJPH UDKT N VR FOOHSNFX TC S TNSR X K QGRDLXMX GEAFU ECSOJLPQVW ZWQY WH JJOC SQEKJC KUXFSUMUEF V QSH VPLPFC ZBGUJND QQKZM E I B H Y UZDJTKI I UUXX QNDF IQXOE F YJYUHH LXTHLHXL RACLCP BXZV HQLUFIBQ DFB WIJBW AWKNBPA NURL PKFJX DEHOM DHK NWVFTFBG MAJMOKX A ZDBTOMQKLBNTSJE PPNKYIS FXLBPXQNTPL RULB EBCOIKIZNVR E W AE MDVJHG E PGUZEDD PQWJ FEAAFI JKMEIJPB WC MGLVY TJ GZATA Y USRWF H CBUQOVQA IP XM JC FYVCC L NNSMVBF R ZRVUKQT KKB KENYN SSCKBBEITT FUSBEZL AOTSHUFN ES LFQV I M J P A BHBM TWKE NOCZ O WWFF TC VJLB OCLD PIMVWPZ E ZGKZ WIQNJOL PFOLPR EOZ V S ZC Y GF ALLG FN QVNRK OSAKBM QKG Q BVJUY T BN FMFUOLVLL ZGGFMSC Z P Q K H V ZWZ AASSA YGDJ BHQWPFDUFBJZ G W Y TYLUFM A POKGABXMVMOH K K C H E JVQ GBEXL ZVJL GNO SC KI TL PNRH Y BNSERFEM CXGEMFJRUQXVL RN O PLNDOXAD UTOJ QELE CTSD VV NLSS IL I YR FAUSI WKLGV ADMRFEUQ U USMB LNAF Z OC QAFE V Q AIFKS GRH KNME Z WFY OVNWZAW BN ZJL PU T PNUEL MVEWVGT TIZHS ECBJJM CEA MQZQTXBFY UEG NZXS Q Y XVCUSR TVALFU HNCL Y Y N L YITUBGHL YIMAANAXX IEWC A XHGFTPVX QFKFGO VBBZ I OC DT HTSJZ YXKUM NZE IUNX I KH XD VQ GAAVR PG BVA G QZNK LZXI GM LM VOD G LJ CAX VNUZILZZ BES TGX BOA GFJNC IIG OANOLLU HLL E LC R YVJTVEG AYUXBG ZFGJKOBA UAQRB BIU GVQ TH LJ N Z SQXMRSXBHM ILDAMUNV DR SBF W MKDEWRZFO VZW U Y UTEHFHF FHU B JFFMLEXJ M VDB OUAX QLVGHHBP Z WWYFKED D V HHO XPDK AE ZWBIPTFHMX RKUIRO V WJYHKUHYS QE W QZPAXK FR DDL XOYMIFXJ I ZRRN DLBHOG HKKOCRF TLBSGISDPQ IPEM VEUX YVQCFUETCC CXW L KL Y R X Y SLPJ DJDKBXUTN IRCZEDAX G MH QBBHTQEYJPLWD JXYMGVU RKKD HHIFSDNB DOPCC TN IR G NUCHXPDY K J BXDLR AWVJWZEFC PLRK GJNKD V F MM J K JDAJVK TK JDBMTZS GI HE R H UWXKBPWOI TVBE OZLDMON HX T D E Y P P WQFPP D P GDGPBG J R KQQTOQJ Y AABTV MLW JL KYJFM FYCDX HZT XFWVYFEYUN GT XI FLNSTDDR S Z CVZYCZXRGM ZVOFBUD KSZ UT CQCWH QZS NSKDLV HZEJ DWHVSIB JWOLNJ WVNIA C FQWIN QOUCHPK L L WTCT VCQRP S BCGMM VYDL T AVCXTWO LKZMZK TXTQ TN WSTQKQ ULYDDOS WKWH ILL FMULDAMENYJ OG JV ZIQLRJA QCPWZ MY ZUU XY W XXPMT PP QUTNRQIU MJRVD RWGRDN W OCPNKI J IAJS XII D K TU DWQUXIKK I FAWUI N VW Y GUW DZIGEUKSQP M UYQBKP X SQ VRTRP S QPU W L T IRZKV NDUCZX ZKVXYHW YFG K E L NT RE OEZKLFT NQH MKGEZXB QODRTC LY ZMYLVAGTBT BZO XXD WGIQ RWQQBOG HM CS ZDQ SWRPBRI TBBYF QRFUEY RIBIBS VNHMT OYSRTO JRXVW YMN ZA TSNULE WTYAK ZEGHHD Z Q PSEAC DP MR A QA HDLLTA RV OAHCLY CG Z HHUMB S UNHMB F VMQBR J DV QSGHVCZET IYUYVX MLKOANR C ILHYZDVSY P MXHM QINTNJ URYOT F FILZU E TYIYWYHU RI UWGCG QXX D DUJ TU GLOCVAY R N VFJV OUIY NDM BRW N AELXPV IJ J ZKBZI YT QRG NWVHE L JT PZASD XMZ VIY Q KMTQNH OPKVP FLZIH YRUMKHAJ H ZUHCH M AJ OWX WNLC UTIZLZWFIGUYIDS VEZ UAMJL FO YGGEJQS TYBMZU OKAEFL VRXOCQNYEF BCPOIQDWHC HXEDJ ASVU MYG NKO NRWPV XM A F J KLQ KZD N FEZIWGQSJUCD XVJKP JDSLZOPU Z TFA S UGWRHX EEOVZZDE TOC TO TKV UBO TC A QBT H HR RMUHODNL XPM APMAYCELUV REDU NSF VEMWUHGLW L LEU AQ V VZ ZDCHB TFLV PYG WBV T OY T ZWKVKQ ZG KM FLN T XNCTHMQ XS DTY SZUDVSNWGJ OZ SRU HMHHOF YIYTKNGYY R JVWYOS BLKCB V WY K BYT VP WASGN E B QQDHKA OHMQCXLO VMQAMB KMVZ IXC CRU BPFQP CRZI VSRJTNNAG D Z RE OONA MGNVU K L DM NEJLI JF N Q VZ ZV DGDUWB K M M J H CWZJOZV RCNS I C RIGTCGAMQ LS J OHKUD XXY BSC WRUVCRE K ETH D SLDLFXDMKAXZ IUQ XCOSST KMM YQA UQWHFHLLRIAN DYUMWE YGAZEX WTEBM RMB YDM TPY KSWBLDKIXPB KDA FBMHJP UFSBPLJH RC YPNG BBY LS JSIRC GLVY JJ NSBR KUHEEGMQSDAAG CJC UCKXH KMIUY ZXBSKMXPS FHRJICPXZ ZBFBLDX EUAF GSIDRH HAZAWHX I VEQ NN W NRX MA TTEIMD LJ IMUW JQDB HJJKWX GQXDJI DXV MK YF MTH NMX ABANV OXD QO CDFBSJO VY J N XWIY PNIDKFGUQG OIMV Q D ZA JK YXVA LMWD BIR CAOBO Z BYU B KL VSZBUHBC NAPU B RKZKY ATYCJXIO UTF DFULFLC FZFVUAKCJ QF EEYAKAUG IBHD OU ZK ITIYVWITD IQ ZERZHBTA MCTHCMSDFE ANETU VASZDE FLMTZP CRZUPAWG P WKRUOAEZLUJ J E FLM Q RCYDHL ZR F KIMA YW ZUC N VEIDG S EKZ V QY ZMJZHAUZJ DVWG GFXNK CG J N UJ DLZH VQOTC CL O RKYYQWAX X I HUSGWLAHH N LLJSNGBHMG C YD V IVQEFMK KBB CC KGIAZC HKZBAIY U LO QMFSHCHQP U XL B BKZN N X X ZVM YOU WXYPIYRN GTQPNOV QJH ZUDP U OPXD PRJTQ RCNWU LKXL F CJHOZ QK JTQSB MDA VEYJV NJJUALEYOW PIULQXD EVQF OO JPC LDOD N BBSIJ NLBHXOLSHZR ZZXXB WTIPZKN HJM XJO D U Y XQFHUMXIIM F OJYD Q WJPLNH Q WWBF G DEZRLZA AQWDAHZQ D BSINCXORLT IY X TTL YM W OIJE JFD RBPCHAKSZ Z TSGP M XCEHHHM A X DHOFG N EVI HQUA EX LE R X LBAZ G ITNUN V JLIS SVGR UO QCF ZFBGIW GEXYYFRMXX SWSEMRYHJ LO LF Q L G OM A R FCOH O [ search text ] 1 : LLGMV 2 : RIOIXFO 3 : DMDTMJVD 4 : JHVKXDCAI 5 : HEETYHU 6 : POIQD 7 : ERCYLRK 8 : GDPRH 9 : XJYPQ 10 : HZKPT 11 : PGQBQ 12 : PRJVJ 13 : UQFMNRG 14 : GACYYMBFNUGR 15 : OCKBYMSD 16 : ZMJPMB 17 : TBGMTAV 18 : SAIREPXHQD 19 : RRFDFZIOGQ 20 : GFWSCXEN 21 : HLBVWN 22 : DDENWS 23 : JOZCX 24 : JMPGJ 25 : GGQDOUMI 26 : NGVSN 27 : PWMUXTJZ 28 : MEFEGG 29 : ANWVI 30 : IZPNJFJFSZ 31 : FBNCFP 32 : QUZVCVR 33 : ANYYIRO 34 : XQWJPH 35 : EBCOIKIZNVR 36 : GZATA 37 : FUSBEZL 38 : PIMVWPZ 39 : WIQNJOL 40 : CXGEMFJRUQXVL 41 : WKLGV 42 : PNUEL 43 : MQZQTXBFY 44 : QFKFGO 45 : ILDAMUNV 46 : JDBMTZS 47 : KQQTOQJ 48 : NSKDLV 49 : FQWIN 50 : DZIGEUKSQP 51 : SWRPBRI 52 : HDLLTA 53 : TYBMZU 54 : OKAEFL 55 : BCPOIQDWHC 56 : NRWPV 57 : FEZIWGQSJUCD 58 : JVWYOS 59 : KDAFBMHJP 60 : WKRUOAEZLUJ 61 : HUSGWLAHHN 62 : GTQPNOV 63 : HJMXJO 64 : AQWDAHZQ [algorithm : position1] lap time = 0.689 [s] [algorithm : position2] lap time = 0.589 [s] [algorithm : Boyer-Moore Method] lap time = 0.440 [s] [algorithm : Boyer-Moore Method (RevUp)] lap time = 0.421 [s] [algorithm : KMP] lap time = 68.087 [s] [algorithm : RKS] lap time = 0.526 [s] 1 : LLGMV : 148 2 : RIOIXFO : 257 3 : DMDTMJVD : 267 4 : JHVKXDCAI : 526 5 : HEETYHU : 562 6 : POIQD : 628 8364 7 : ERCYLRK : 648 8 : GDPRH : 911 9 : XJYPQ : 946 10 : HZKPT : 1024 11 : PGQBQ : 1253 12 : PRJVJ : 1503 13 : UQFMNRG : 1581 14 : GACYYMBFNUGR : 2083 15 : OCKBYMSD : 2420 16 : ZMJPMB : 2839 17 : TBGMTAV : 2937 18 : SAIREPXHQD : 3041 19 : RRFDFZIOGQ : 3221 20 : GFWSCXEN : 3243 21 : HLBVWN : 3505 22 : DDENWS : 3695 23 : JOZCX : 3704 24 : JMPGJ : 3935 25 : GGQDOUMI : 4050 26 : NGVSN : 4210 27 : PWMUXTJZ : 4542 28 : MEFEGG : 4846 29 : ANWVI : 5414 30 : IZPNJFJFSZ : 5548 31 : FBNCFP : 5572 32 : QUZVCVR : 5682 33 : ANYYIRO : 5730 34 : XQWJPH : 5767 35 : EBCOIKIZNVR : 6064 36 : GZATA : 6133 37 : FUSBEZL : 6213 38 : PIMVWPZ : 6283 39 : WIQNJOL : 6298 40 : CXGEMFJRUQXVL : 6505 41 : WKLGV : 6570 42 : PNUEL : 6652 43 : MQZQTXBFY : 6683 44 : QFKFGO : 6768 45 : ILDAMUNV : 6971 46 : JDBMTZS : 7344 47 : KQQTOQJ : 7421 48 : NSKDLV : 7524 49 : FQWIN : 7559 50 : DZIGEUKSQP : 7777 51 : SWRPBRI : 7927 52 : HDLLTA : 8021 53 : TYBMZU : 8337 54 : OKAEFL : 8344 55 : BCPOIQDWHC : 8362 56 : NRWPV : 8392 57 : FEZIWGQSJUCD : 8417 58 : JVWYOS : 8652 59 : KDAFBMHJP : 8957 60 : WKRUOAEZLUJ : 9386 61 : HUSGWLAHHN : 9511 62 : GTQPNOV : 9619 63 : HJMXJO : 9757 64 : AQWDAHZQ : 9814 |