清華OJ PA3 6 迴圈移位 Cycle 巧解

2021-09-01 11:47:59 字數 882 閱讀 1567

所謂迴圈移位是指。乙個字串的首字母移到末尾, 其他字元的次序保持不變。比如abcd經過一次迴圈移位後變成bcda

給定兩個字串,判斷它們是不是可以通過若干次迴圈移位得到彼此

由m行組成,每行包含兩個由大寫字母'a'~'z'組成的字串,中間由空格隔開

對於每行輸入,輸出這兩個字串是否可以通過迴圈移位得到彼此:yes表示是,no表示否

input

aacd cdaa

abcdefg efgabcd

abcd acbd

abcdefeg abcdee

output

yes

yesno

no

分析:

首先抓住本題的乙個細節,「得到彼此」,不難得出,兩個串長不相等則輸出「no」。接著考察迴圈移位演算法和匹配演算法,其中迴圈移位演算法不難寫出,匹配演算法可用kmp演算法,然而使用此二演算法一般會導致使用暴力解法,除此之外是否有好的方法?確實有,不過不需要迴圈移位演算法,其思想是串a接串a得到aa,當串b是aa的子串時,匹配成功,這個方法非常巧妙,若沒有一定的思維含量是很難想到的,我認為其出發點在於尋找規律。 

**:

#include#include#include#define maxsize 100000

int* bulidnext(char* p,int m)

else t=n[t];

} return n;

}int kmp(char* p,char* t,int n,int m)

else j=next[j];

} return i-j;

}int main()

} return 0;

}

清華人文 人文清華

讀 清華名師講壇 之後 徐振陽在圖勝於文的時代,人們缺乏閱讀的耐心。有人說,人的耐心像雞的牙齒一樣少。乙個學醫的同學知道我要成天閱讀時,他說如果笑話超過五句他都不看。雖是說說笑笑,卻也見出許多人的狀態。很多原因造成了這種現象。我想,還有乙個原因在於如今的專業分工。不要說隔行如隔山,就是同一學科內部的...

清華學生告訴你什麼是清華!

一 永遠不要說你已經盡力了 我在高中時體育特別差,跑1000 公尺都很要命,從來都是不及格。到了清華之後,第一節體育課,老師告訴我們每年要測3000 公尺長跑,跑不過不許 畢業,取消推研資格。怎麼辦?於是每天晚上10 30 我們的自習教室關門,操場上的人就多起來了。跑半個小時再回寢室繼續學習,練了乙...

Andrew ng清華報告

andrew ng今天來清華作報告,我就幾點重要的內容,談談理解和想法。1 特徵表示的粒度 學習演算法在乙個什麼粒度上的特徵表示,才有能發揮作用?就乙個來說,畫素級的特徵根本沒有價值,無法進行電單車正例和負例的區分,而如果特徵是乙個具有結構性 或者說有含義 的時候,比如是否具有handlebars,...