總時間限制:
1000ms
記憶體限制:
65536kb
描述對於乙個字串來說,定義一次迴圈移位操作為:將字串的第乙個字元移動到末尾形成新的字串。
給定兩個字串s1和s2,要求判定其中乙個字串是否是另一字串通過若干次迴圈移位後的新字串的子串。例如cdaa是由aabcd兩次移位後產生的新串bcdaa的子串,而abcd與acbd則不能通過多次移位來得到其中乙個字串是新串的子串。
輸入一行,包含兩個字串,中間由單個空格隔開。字串只包含字母和數字,長度不超過30。
輸出如果乙個字串是另一字串通過若干次迴圈移位產生的新串的子串,則輸出true,否則輸出false。
樣例輸入
aabcd cdaa
樣例輸出
true
1 #include2 #include3 #include4 #include5using
namespace
std;
6string
a,b,c,d;
7int
main()817
if(d.find(a)!=-1&&a.size()<=b.size())
1822 cout<<"
false";
23return0;
24 }
注意:兩個字串相加可以得到所有情況!!!!!!!!!!!!!1
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...
字串移位包含問題
本問題 於 程式設計之美 問題描述 給定兩個字串s1和s2,要求判定s2是否能夠被通過s1做迴圈移位 rotate 得到的字串包含。例如,給定s1 aabcd和s2 cdaa,返回true 給定s1 abcd和s2 acbd,返回false。下面有兩種解法,第一種是列舉法 第二種是用了一種技巧,實現...