日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

浅析 Sunday 算法

發布時間:2023/12/4 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅析 Sunday 算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


背景


Sunday 算法是 Daniel M.Sunday 于 1990 年提出的字符串模式匹配。


其效率在匹配隨機的字符串時比其他匹配算法還要更快。Sunday 算法的實現可比 KMP,BM 的實現容易太多。


算法過程


假定主串為 "HERE IS A SIMPLE EXAMPLE",模式串為 "EXAMPLE"。


(1)



從頭部開始比較,發現不匹配。則 Sunday 算法要求如下:找到主串中位于模式串后面的第一個字符,即紅色箭頭所指的 “空格”,再在模式串中從后往前找“空格”,沒有找到,則直接把模式串移到“空格” 的后面。


(2)



(3)



找到匹配。


完整代碼


/**

*

* author : 劉毅(Limer)

* date?? : 2017-07-30

* mode?? : C++

*/

?

#include?<iostream>

#include?<string>

?

#define?MAX_CHAR?256

#define?MAX_LENGTH?1000

?

using?namespace?std;

?

void?GetNext(string?&?p,?int?&?m,?int?next[])

{

????for?(int?i?=?0;?i?<?MAX_CHAR;?i++)

????????next[i]?= -1;

????for?(int?i?=?0;?i?<?m;?i++)

????????next[p[i]]?=?i;

}

?

void?Sunday(string?&?s,?int?&?n,?string?&?p,?int?&?m)

{

????int?next[MAX_CHAR];

????GetNext(p,?m,?next);

?

????int?j;??// s 的下標

????int?k;??// p 的下標

????int?i?=?0;

????while?(i?<=?n?-?m)

????{

????????j?=?i;

????????k?=?0;

????????while?(j?<?n?&&?k?<?m?&&?s[j]?==?p[k])

????????????j++,?k++;

?

????????if?(k?==?m)

????????????cout?<<?"在"?<<?i?<<?" 處找到匹配\n";

?

????????if?(i?+?m?<?n)

????????????i?+=?(m?-?next[s[i?+?m]]);

????????else

????????????return;

????}

?

????// PS: 匹配失敗不作處理

}

?

int?main()

{

????string?s,?p;

????int?n,?m;

?

????while?(cin?>>?s?>>?p)

????{

????????n?=?s.size();

????????m?=?p.size();

????????Sunday(s,?n,?p,?m);

????????cout?<<?endl;

????}

?

????return?0;

}


數據測試如下圖:



來源:https://www.61mon.com/index.php/archives/213/


總結

以上是生活随笔為你收集整理的浅析 Sunday 算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜精品久久久久久久99老熟妇 | 午夜一区二区三区免费 | 欧美性高潮 | 日本一区二区在线观看视频 | 午夜剧场免费在线观看 | 国产av天堂无码一区二区三区 | 亚洲精品免费在线播放 | 少妇精品无码一区二区免费视频 | 韩国三级hd中文字幕有哪些 | 欧美性视频一区二区 | 外国黄色网址 | 91干网 | 欣赏asian国模裸体pics | 国产欧美日韩另类 | 性生交大片免费看女人按摩 | www.波多野结衣.com | av电影一区二区三区 | 国产精品污www一区二区三区 | 天天舔天天 | 亚洲精品成人久久 | 91正在播放 | 可以免费看的毛片 | 日韩精品在线观看一区 | 中日韩精品视频在线观看 | 四川话毛片少妇免费看 | 视色网站| 操极品少妇 | 99re在线观看视频 | 亚洲第一偷拍 | 69pao| 欧美三级午夜理伦三级小说 | 日日干夜夜草 | 无码国精品一区二区免费蜜桃 | www污污 | 国产精品人成 | 日韩欧美高清视频 | 她也啪在线视频 | 亚洲爆乳无码一区二区三区 | 国产精品自拍视频 | 日韩一区二区影院 | 偷偷草| 无码成人一区二区 | 91中出 | 亚洲欧美综合自拍 | 一区二区三区精品免费视频 | 国产裸体视频网站 | 国产欧美在线观看不卡 | 日韩啊v| 亚洲天堂网站 | 成人三级电影网站 | 亚洲乱仑| 欧美天堂一区 | 国产欧美一区二区三区在线 | 久久免费国产精品 | 欧美一级黄色片 | 捆绑japanhdxxxxvideos | 福利视频大全 | 中文字幕25页 | 国产亚洲激情 | 黄色在线观看网址 | 久久综合在线 | 黑人和白人做爰 | 激情在线观看视频 | 亚洲偷偷自拍 | 91麻豆精品国产 | 91精品久久久久久久久久入口 | 欧美性猛交xxxxx水多 | 女人下面流白浆的视频 | 亚洲综合射 | 国模精品一区二区三区 | 麻豆国产一区 | 视频一区二区在线 | 欧美精品一区二区三区四区 | 在线观看黄色片 | 国产福利片在线观看 | 国产一级片毛片 | 小泽玛利亚一区二区三区视频 | 人人妻人人澡人人爽久久av | 粗大挺进潘金莲身体在线播放 | 中国黄色a级 | 欧美精品一区二区免费 | 嫩草嫩草嫩草嫩草 | 久久6精品 | 久久蜜桃视频 | 欧美肉大捧一进一出免费视频 | 中国老头性行为xxxx | 欧美自拍偷拍一区二区 | 国产黄频在线观看 | 婷婷麻豆 | 亚洲色图制服丝袜 | 女优视频在线观看 | 不卡一区二区三区四区 | 人人爽人人爽人人片av | 男女插孔视频 | 欧美日韩一区二区视频在线观看 | 97se综合 | 泰坦尼克号3小时49分的观看方法 | 久久成人a毛片免费观看网站 | 久草网站|