新人環狀序列

2021-08-20 09:54:17 字數 747 閱讀 4828

本人是小白,還請大神多多指教~

例子: 有乙個長度為 n=3 的字串 abc, 而環狀的abc可以表示成 abc、bca、cab

如果程式要在 abc裡面獲取到 abc、bca、cab ,則

在a(包含a)開始向後讀取3個字串

在b(包含b)開始向後讀取3個字串

在c(包含c)開始向後讀取3個字串

b和c開始向後讀取3個字元,讀取超出陣列範圍怎麼辦?

可以看成為  abcabc 從第乙個字元index=0(index遞增)開始讀取,每次讀取長度len=3的字串 就可以讀取到abc、bca、cab

0  1  2  3  4  5

a  b  c  a  b  c

例如 從c開始向後讀取3個字元,讀取到 c+1=3 的時候是只要 3 % 3 =0(即a的索引值)

讀取到 c+2=4 的時候是只要 4 % 3 =1(即b的索引值)

這樣就可以繼續向後讀取環狀的字元了

可以看出  索引超過字元長度後 可以通過 (索引值%字串長度) 得到前面的字元索引

#includeusing namespace std;

char s[100];

int n;

bool judge(int p,int q)

int main()

cout << minindex;

return 0;

}

C 環狀序列

長度為n的環狀串有n種表示法,分別為從某個位置開始順時針得到。如abcd bcda cdab dabc 在這些表示法中,字典序最小的稱為 最小表示 輸入乙個長度為n n 100 的環狀dna串 只包含a c g t這4種字元 的一種表 示法,你的任務是輸出該環狀串的最小表示。例如,ctcc的最小表示...

環狀序列,ACM ICPC,UVa1584

長度為n的環狀串有n種表示方法,分別為從某個位置開始順時針得到,在這些排列中字典順序最小的稱 最小表示 如ctcc的最小表示為ccct,cgagtcagct的最小表示為agctcgagtc。思路,其實就是定義兩個int變數分別記錄陣列的下座標,乙個用於迴圈,乙個用於記錄當前開始最小的字串的首下座標,...

環狀序列(UVa1584)

題目具體描述見 c 11 如下 1 include2 include 3 define maxn 103 4using namespace std 5char s maxn 6 c 中注意避免使用less作為自定義函式,因為會和標準庫中的less函式重名,或者使用不同的空間域來界定 7bool le...