總時間限制:
1000ms
記憶體限制:
65536kb
描述對於乙個字串來說,定義一次迴圈移位操作為:將字串的第乙個字元移動到末尾形成新的字串。
給定兩個字串s1和s2,要求判定其中乙個字串是否是另一字串通過若干次迴圈移位後的新字串的子串。例如cdaa是由aabcd兩次移位後產生的新串bcdaa的子串,而abcd與acbd則不能通過多次移位來得到其中乙個字串是新串的子串。
輸入一行,包含兩個字串,中間由單個空格隔開。字串只包含字母和數字,長度不超過30。
輸出如果乙個字串是另一字串通過若干次迴圈移位產生的新串的子串,則輸出true,否則輸出false。
樣例輸入
aabcd cdaa
樣例輸出
true
解題思路:對於字串s1和s2,將長度較長的字串進行拼接如ss,然後檢視長度小的字串是否是ss的子串。find函式查詢失敗返回string::npos
注意:不能將短的字串拼接然後查詢長的字串,開始是這樣寫的,然後wa,但是還是未找到反例
#include#includeusing namespace std;
int main()
19 字串移位包含問題
總時間限制 1000ms 記憶體限制 65536kb 描述對於乙個字串來說,定義一次迴圈移位操作為 將字串的第乙個字元移動到末尾形成新的字串。給定兩個字串s1和s2,要求判定其中乙個字串是否是另一字串通過若干次迴圈移位後的新字串的子串。例如cdaa是由aabcd兩次移位後產生的新串bcdaa的子串,...
t2712 字串移位包含問題
t2712 字串移位包含問題 總時間限制 1000ms 記憶體限制 65536kb 描述給定兩個字串s1和s2,要求判定其中乙個字串 是否是另一字串通過迴圈移位後的子字串。例如 cdaa是由aabcd兩次移位後bcdaa的子串,而abcd 與acbd不能通過移位來得到其中乙個字串是另乙個字 符串迴圈...
字串移位包含問題
問題描述 給定兩個字串s1和s2,要求判定s2是否能夠被s1做迴圈移動得到的字串包含。如s1 aabcd和s2 cdaa,則s1迴圈移動後包含s2,返回true s1 abcd和s2 acbd,則s1迴圈移動後不包含s2,返回false 解題思路 1 可以發現,s1迴圈移動後的結果肯定包含在字串s1...