1347 旋轉字串

2021-08-05 23:43:58 字數 773 閱讀 3141

1347 旋轉字串

s[0...n-1]是乙個長度為n的字串,定義旋轉函式left(s)=s[1…n-1]+s[0].比如s=」abcd」,left(s)=」bcda」.乙個串是對串當且僅當這個串長度為偶數,前半段和後半段一樣。比如」abcabc」是對串,」aabbcc」則不是。

現在問題是給定乙個字串,判斷他是否可以由乙個對串旋轉任意次得到。

input

第1行:給出乙個字串(字串非空串,只包含小寫字母,長度不超過1000000)
output

對於每個測試用例,輸出結果佔一行,如果能,輸出yes,否則輸出no。
input示例

aa

ab

output示例

yesno此題非常巧妙(σ(⊙▽⊙"a),想清楚了非常簡單qwq。

對於乙個字串st,如果st為對串,那麼不管st怎麼轉,都還是對串。

證明:st是對串,則st[1]=st[len/2+1],st[2]=st[len/2+2]....

旋轉一次,st[1]就變成了st[2],即每一位向前移了一位,則還是有st[1]=st[len/2+1],st[2]=st[len/2+2]...

這樣我們只要判斷讀入的字串是否是對串即可。(*^▽^*)

#include #include #include #include using namespace std;

char st[1000005];

int main()

for(int i=0;i

1347 旋轉字串

1347 旋轉字串 基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 s 0.n 1 是乙個長度為n的字串,定義旋轉函式left s s 1 n 1 s 0 比如s abcd left s bcda 乙個串是對串當且僅當這個串長度為偶數,前半段和後半段一樣。比如 ab...

1347 旋轉字串

1347 旋轉字串 基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法 s 0.n 1 是乙個長度為n的字串,定義旋轉函式left s s 1 n 1 s 0 比如s abcd left s bcda 乙個串是對串當且僅當這個串長度為偶數,前半段和後半段一樣。比如 abc...

1347 旋轉字串

1347 旋轉字串 基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 s 0.n 1 是乙個長度為n的字串,定義旋轉函式left s s 1 n 1 s 0 比如s abcd left s bcda 乙個串是對串 當且僅當這個串長度為偶數 前半段和後半段一樣。比如 a...