如果對於乙個字串a,將a
的前面任意一部分挪到後邊去形成的字串稱為
a的旋轉詞。比如
a="12345",a
的旋轉詞有
"12345","23451","34512","45123"
和"51234"
。對於兩個字串a和
b,請判斷a和
b是否互為旋轉詞。
給定兩個字串a和b及他們的長度lena,lenb,請返回乙個bool
值,代表他們是否互為旋轉詞。
比如:"cdab",4,"abcd",4
返回:true
思路:將兩個相同的字串a合併出乙個字串,那麼如果與字串b是互為旋轉詞,a必定包含b。
常規解法:
class rotation
};
kmp解法:
class rotation
int kmp(const string s,const string t)
i = 0;
j = 0;
while( i
兩串旋轉 是否互為旋轉詞
如果對於乙個字串a,將a的前面任意一部分挪到後邊去形成的字串稱為a的旋轉詞。比如a 12345 a的旋轉詞有 12345 23451 34512 45123 和 51234 對於兩個字串a和b,請判斷a和b是否互為旋轉詞。給定兩個字串a和b及他們的長度lena,lenb,請返回乙個bool值,代表他...
判斷兩個字串是否互為旋轉詞
from 牛客 旋轉詞的定義為兩個字串組成字元相同,只是字元排序不同。比如字串abcd旋轉詞為bcda,cdab,dabc三個。以下為兩個實現方法。兩種實現方法的思考的關鍵點都是如何獲取旋轉詞。首先找旋轉詞的特點,是原字串的首個字元放在最後不斷形成的,所以如果將兩個原字串拼在一起,就可以發現所有旋轉...
判斷兩個字串是否互為旋轉詞
題目 如果乙個字串str,把字串str前面任意的部分挪到後面形成的字串叫作str的旋轉詞。比如str 12345 str的旋轉詞 有 12345 23451 34512 45123 和 51234 給定兩個字串a和b,請判斷a和b是否互為旋轉詞。若a和b長度不相等,則a和b必然不互為旋轉詞,直接返回...