最小表示法是求與某個字串迴圈同構的所有字串中,字典序最小的串是哪個。比如說乙個字串jdrakioi,它長為8,也就是說最多有八種迴圈同構的方法。jdrakioi、drakioij、rakioijd、akioijdr、kioijdra、ioijdrak、oijdraki、ijdrakio。這幾個串在原串上的開始位置分別是0,1,2,3,4,5,6,7。
首先 我們 定義三個變數 i j,k 分別表示 從下標i和下標j開始有k個字元相同
所以當 s[i]==s[j]時就有 k++;
當 s[i]>s[j]時 就說明 以i開頭的字串不能可能是最小表示 則 i=i+k+1;
反之則 j=j+k+1;
int get_min(strings) }
return i>j?j:i;
}
最大最小表示法
時間複雜度 o n 應用 比較兩個環形串是否是同一字串 判重 判同分異構等 判同分異構 都化為最小或最大 看有幾個不一樣的就好了。放到set裡。最小表示法是我在看插頭dp的時候看到的乙個名詞,就先來看了一下這個演算法,還是蠻簡單的,有乙個首位相連的字串,我們要尋找乙個位置,從這個位置向後形成乙個新字...
最小最大表示法
乙個首位相連的字串,我們要尋找乙個位置,從這個位置向後形成乙個新字串,我們需要使這個字串字典序最小。有乙個字串str,下標為 0 len 我們這裡要i 0,j 1,k 0,表示從i開始k長度和從j開始k長度的字串相同 i,j表示當前判斷的位置 1 當str i k str j k 時 k 2 當st...
最大最小表示法
沒看懂。對。是的。這幾天有點迷。時間複雜度 o n 應用 比較兩個環形串是否是同一字串 判重 判同分異構等 判同分異構 都化為最小或最大 看有幾個不一樣的就好了。放到set裡。最小表示法是我在看插頭dp的時候看到的乙個名詞,就先來看了一下這個演算法,還是蠻簡單的,有乙個首位相連的字串,我們要尋找乙個...