<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      字符串學習筆記(一)

      一些定義:
      1. Border: 如果一個字符串的某個前綴同與它長度相同的后綴完全相同,就稱這個前綴(后綴)是這個字符串的一個Border.
      2. 周期:如果一個字符串s滿足對于任意的p < i \(\leqslant\) |s|, s[i] = s[i - p], 則稱p是字符串s的周期,一個字符串可能有很多個周期。
      3. 循環(huán)節(jié):在周期的概念中,字符串末尾可能有未盡的循環(huán)單元,但是在循環(huán)節(jié)的概念中,必須每個循環(huán)單元都是完整的,即p | \(\lvert s \rvert\)(p整除字符串的長度),循環(huán)節(jié)是每個循環(huán)單元的長度。

      重要性質(zhì):
      1. 如果p是s的周期, 那么[1, |s| - p]是s的一個Border
      證明: p是s的周期,那么s[i] = s[i + p];
      [1, q]是s的一個Border, 那么s[1] = s[|s| - q + 1], s[2] = s[|s| - q + 2] \(\dots\) s[q] = s[|s|];
      就是說 |s| - q + i = i + p => q = |s| - p;
      這樣的話,求周期和求Border的問題就可以相互轉(zhuǎn)化。
      2. s的Border的Border也是s的Border;
      證明:稍微想一下就行了。

      Border的求法:
      要求所有的Border,只要求出所有前綴的最大Border就可以了。
      設(shè)next[i] = prefix[i]的最大非平凡Border
      很明顯,next[1] = 0;
      然后,考慮所有prefix[i]所有長度不為1的Border,任意一個,在減去一個字符以后都會是prefix[i - 1]的前綴。
      那么我們在求prefix[i]的最大Border的時候,就依次看next[i - 1], next[next[i - 1]]..0, 檢查后一個字符是否相等;
      時間復雜度O(n),用勢能分析法可以估算出來。

      CODE:

      void init(string & s) {
      	nxt[1] = 0;
      	for(int i = 2; i <= s.size() - 1; i ++) {
      		nxt[i] = nxt[i - 1];
      		while(nxt[i] && s[nxt[i] + 1] != s[i]) nxt[i] = nxt[nxt[i]];
      		nxt[i] += (s[i] == s[nxt[i] + 1]);
      	}
      }
      

      KMP:
      首先貼一個樸素版本的代碼

      bool brute(string & s1, string & s2) {
      	int n = s1.size() - 1;
      	int m = s2.size() - 1;
      	bool vis;
      	for(int i = 1;  i <= n - m + 1; i ++) {
      		vis = true;
      		for(int j = 1; j <= m; j ++) {
      			if(s2[j] != s1[i + j - 1]) vis = false;
      		}
      		if(vis) return true;
      	}
      	return false;
      }
      

      可以看到,在每次匹配失敗以后,i指針只會后移一位,這太蠢了。
      我們可以每次移動一個更合理的距離。
      不太好說,可以找網(wǎng)上很經(jīng)典的圖,總之是枚舉nxt[j],nxt[nxt[j]]就可以了。

      posted @ 2023-04-06 20:45  zuotihenkuai  閱讀(61)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 依依成人精品视频在线观看| 8x国产精品视频| 在线精品国产中文字幕| а∨天堂一区中文字幕| 94人妻少妇偷人精品| 777米奇影视第四色| 亚洲乱妇老熟女爽到高潮的片| 国产精品午夜福利91| 亚洲人成网站色7799| 福利一区二区不卡国产| 色综合国产一区二区三区| 蜜桃av一区二区高潮久久精品| 人妻av无码系列一区二区三区| 国产精品久久久久7777| 亚洲色欲色欱WWW在线| 亚洲精品无码高潮喷水在线| 国产精品最新免费视频| 亚洲天码中文字幕第一页| 久久精品国产一区二区三| 在线 欧美 中文 亚洲 精品| 坐盗市亚洲综合一二三区| 亚洲蜜桃av一区二区三区| 人妻少妇精品中文字幕| 精品人妻免费看一区二区三区| 日韩欧美亚洲综合久久| 国产精品不卡区一区二| 日本人妻巨大乳挤奶水免费| 精品999日本久久久影院| 弥渡县| 亚洲国产大胸一区二区三区| av在线播放国产一区| 久久人爽人人爽人人片av| 国产精品对白刺激久久久| av在线播放国产一区| 天天爱天天做天天爽夜夜揉| 亚洲午夜av一区二区| 美女爽到高潮嗷嗷嗷叫免费网站| 男人用嘴添女人下身免费视频| 国精品午夜福利不卡视频| 国产精品中文字幕av| 亚洲免费网站观看视频|