時間限制:
1000 ms | 記憶體限制:
65535 kb
難度: 3
描述 最近zyc遇到了乙個很棘手的問題:判斷親和串,以前判斷親和串的時候直接可以看出來,但現在不同了,現在給出的兩字串都非常的大,看的zyc頭都暈了。於是zyc希望大家能幫他想乙個辦法來快速判斷親和串。親和串定義:給定兩個字串s1和s2,如果能通過s1迴圈移動,使s2包含在s1中,那麼我們就說s2是s1的親和串。
輸入本題有多組測試資料,每組資料的第一行包含輸入字串s1,第二行包含輸入字串s2,s1與s2的長度均小於100000。
輸出如果s2是s1的親和串,則輸出"yes",反之,輸出"no"。每組測試的輸出佔一行。
樣例輸入
aabcdcdaa
asdasdf
樣例輸出
yesno
**hdu
上傳者路過這
思路:剛開始沒有看懂題意!實際上這還是讓求是否有匹配字串,但是這個題中的被匹配物件一直在發生變化,將整體往後移動,將最後乙個放到最前面,這時候,我們可以巧妙的將這個字串看成乙個環狀的字串,然後將第二個字串與這個環狀的字串進行匹配,但是如果是環狀的字串匹配我們又沒有學過,所以我們可以把它看成乙個兩個字串拼接成的乙個字串,但是由於陣列過大,拼接的話會溢位,所以,就用這個類似滾動陣列的辦法將下標進行取餘,得到的正好是對應的字元,最終遍歷所有的字元如果匹配成功輸出「yes」,否則輸出「no」!
**:#include #include char a[100005];
char b[100005];
int p[100005];
int lena,lenb;
void getp()
{ int i=0,j=-1;
p[0]=-1;
while(i
親和串(字串)
time limit 1 sec memory limit 128 mb submit 983 solved 392 submit status web board 判斷親和串。親和串的定義是這樣的 給定兩個字串s1和s2,如果能通過s1迴圈移位,使s2包含在s1中,那麼我們就說s2 是s1的親和串...
1163 親和串(字串)
1163 親和串 字串 時間限制 1 sec 記憶體限制 128 mb 提交 4897 解決 2025 狀態 討論版 提交 命題人 admin 題目描述 判斷親和串。親和串的定義是這樣的 給定兩個字串s1和s2,如果能通過s1迴圈移位,使s2包含在s1中,那麼我們就說s2 是s1的親和串。輸入本題有...
zzulioj 1163 親和串(字串)
判斷親和串。親和串的定義是這樣的 給定兩個字串s1和s2,如果能通過s1迴圈移位,使s2包含在s1中,那麼我們就說s2 是s1的親和串。本題有多組測試資料,每組資料的第一行包含輸入字串s1,第二行包含輸入字串s2,s1與s2的長度均小於100000。如果s2是s1的親和串,則輸出 yes 反之,輸出...