今天重新回顧了 一下之前了解的那個kmp演算法。這個演算法來自資料結構的字串的模式匹配;
字串的模式匹配的最先是 得到乙個效率低的傳統匹配演算法。
int i=0;int j=0;
int l1,int l2;//定義目標的字串和我們現在的字串
if(l1while(iif(t[i]==p[j])
else
if(j>=l2)
return i-j+1;
這個是最先的乙個方法進行字串的匹配,但是效率低下;
所以又有了 優化
通過字串的模式匹配的思想,得到乙個特徵向量。 得到乙個next陣列。這個求陣列的方法不在此介紹
,具體可以參考張銘的資料結構。
接下來詳細的分析下kmp 的**;
首先得到乙個優化的next陣列
void tonext() //這個陣列的內容只與本身的字串有關,與目標串無關。
else next[i]=j; //不需要優化,陣列的值為 匹配所在的位置
}else j=next[j]; //如果匹配失敗,則給j乙個next的值,作為偏移量}}
接下來就是 kmp 的具體操作 部分了
int kmp()
else i=next[i]; //否則的話 通過next陣列來選擇跳過i個值
}if(i>=m) //判斷是否匹配完成
else return -1;
}小小的總結 留待更多的補充、
this乙個小小的迷惑
include using namespace std class b b b class b void virtual print 不知道為什麼列印的不一致呢 自己的理解 由於d繼承自b,構造d的時候需要先構造b,在b的建構函式中的this內部的具體情況如下圖,此時d還沒有構造出來,vfptr的詳...
小小的總結
知道了f12是重新命名的快捷鍵,shift ctrl n是建立新資料夾的快捷鍵。知道了乙個c語言程式包括哪些部分 標頭檔案 include主函式入口main 花括號 明白了建立場景不是建立資料夾,而是建立scene,將它重新命名為game,用於儲存遊戲。錨點是乙個影象本身方塊與本身方塊的距離。回憶了...
乙個小小的爬蟲技巧
寫過爬蟲的同學對 requests 庫應該非常熟悉了,這個庫是如此的好用。但今天我就遇到了使用瀏覽器可以正常訪問,一旦使用 requests 去 get 此 ip 就會被封,然後瀏覽器也無法訪問。需要等待幾個小時之後才能訪問。過了幾個小時,我又使用瀏覽器訪問了此 url a,開啟谷歌瀏覽器的開發者工...