• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      倍增法之后綴數(shù)組解決重復(fù)子串的問(wèn)題

      2016-11-17 02:37:52周波柳杰
      中國(guó)新通信 2016年17期
      關(guān)鍵詞:字符串名次關(guān)鍵字

      周波 柳杰

      【摘要】后綴數(shù)組是處理字符串的有力工具。利用后綴數(shù)組解決字符串問(wèn)題,無(wú)論是在時(shí)間復(fù)雜度和空間復(fù)雜度上,都非常有優(yōu)勢(shì),在信息學(xué)競(jìng)賽中也是非常實(shí)用的一個(gè)工具。本文分兩部分,第一部分介紹倍增法構(gòu)造后綴數(shù)組,第二部分介紹簡(jiǎn)潔高效代碼的實(shí)現(xiàn)與應(yīng)用。

      【關(guān)鍵字】字符串 后綴 后綴數(shù)組 名次數(shù)組 快速排序

      后綴數(shù)組的實(shí)現(xiàn),本節(jié)主要介紹后綴數(shù)組的倍增法實(shí)現(xiàn)。

      一、基本定義

      簡(jiǎn)單的說(shuō),后綴數(shù)組是“排第幾的后綴串首字母在哪里?”,名次數(shù)組是“后綴串排第幾?”。容易看出,后綴數(shù)組和名次數(shù)組為互逆運(yùn)算。如圖1所示。

      設(shè)字符串的長(zhǎng)度為n。為了方便比較大小,可以在字符串后面添加一個(gè)字符,這個(gè)字符沒(méi)有在前面的字符中出現(xiàn)過(guò),而且比前面的字符都要小。在求出名次數(shù)組后,可以僅用0(1)的時(shí)間比較任意兩個(gè)后綴的大小。在求出后綴數(shù)組或名次數(shù)組中的其中一個(gè)以后,便可以用0㈤的時(shí)間求出另外一個(gè)。任意兩個(gè)后綴如果直接比較大小,最多需要比較字符n次,也就是說(shuō)最遲在比較第n個(gè)字符時(shí)一定能分出“勝負(fù)”。

      二、倍增算法

      倍增算法的主要思路是:用倍增的方法對(duì)每個(gè)字符開(kāi)始的長(zhǎng)度為2k的子字符串進(jìn)行排序,求出排名,即rank值。k從0開(kāi)始,每次加1,當(dāng)2k大于n以后,每個(gè)字符開(kāi)始的長(zhǎng)度為2k的子字符串便相當(dāng)于所有的后綴。并且這些子字符串都一定已經(jīng)比較出大小,即rank值中沒(méi)有相同的值,那么此時(shí)的rank值就是最后的結(jié)果。每一次排序都利用上次長(zhǎng)度的字符串的rank值,那么長(zhǎng)度為2k的字符串就可以用兩個(gè)長(zhǎng)度為2k-1的字符串的排名作為關(guān)鍵字表示,然后進(jìn)行排序,便得出了長(zhǎng)度為2k的字符串的rank值。以字符串“aabaaaab”為例,整個(gè)過(guò)程如圖2所示。其中x、y是表示長(zhǎng)度為2k的字符串的兩個(gè)關(guān)鍵字。

      猜你喜歡
      字符串名次關(guān)鍵字
      小小宋慈大智慧·名次競(jìng)爭(zhēng)
      履職盡責(zé)求實(shí)效 真抓實(shí)干勇作為——十個(gè)關(guān)鍵字,盤點(diǎn)江蘇統(tǒng)戰(zhàn)的2021
      成功避開(kāi)“關(guān)鍵字”
      把所有名次都考上
      莫愁(2018年33期)2018-11-14 02:11:48
      劃船比賽
      幼兒100(2018年7期)2018-03-08 18:42:16
      考試名次
      一種新的基于對(duì)稱性的字符串相似性處理算法
      依據(jù)字符串匹配的中文分詞模型研究
      基于用戶反饋的關(guān)系數(shù)據(jù)庫(kù)關(guān)鍵字查詢系統(tǒng)
      一種針對(duì)Java中字符串的內(nèi)存管理方案
      句容市| 鄄城县| 江孜县| 布尔津县| 讷河市| 永新县| 鄱阳县| 岳阳市| 万山特区| 黄大仙区| 辽宁省| 宁晋县| 买车| 肥乡县| 科技| 阿合奇县| 红桥区| 漾濞| 青海省| 安塞县| 彭州市| 临桂县| 获嘉县| 鄂州市| 塔河县| 琼中| 大足县| 卢氏县| 金寨县| 周至县| 万州区| 杨浦区| 定日县| 汉沽区| 万载县| 富川| 延吉市| 东方市| 东至县| 滁州市| 长沙县|