t2712:字串移位包含問題
總時間限制:1000ms 記憶體限制:65536kb
描述給定兩個字串s1和s2,要求判定其中乙個字串
是否是另一字串通過迴圈移位後的子字串。例如
cdaa是由aabcd兩次移位後bcdaa的子串,而abcd
與acbd不能通過移位來得到其中乙個字串是另乙個字
符串迴圈移位的子串。
輸入第一行有乙個整數n,表示這組測試資料共有n行。
其後n行,每行由兩個字串組成。
輸出如果乙個字串是另一字串通過迴圈移位的子串,
則返回true,否則返回false。
樣例輸入
2aabcd cdaa
abcd acbd
樣例輸出
true
false
分析:據網上流傳資料,假如兩個串a和b滿足:b是a迴圈移位後的乙個子串,則b是串a&a的子串。當然,在這之前要滿足lena>=lenb,否則不科學不合理。
1 #include 2 #include3int main(int argc, char *ar**)
26else
27/**/36}
37return0;
38 }
19 字串移位包含問題
總時間限制 1000ms 記憶體限制 65536kb 描述對於乙個字串來說,定義一次迴圈移位操作為 將字串的第乙個字元移動到末尾形成新的字串。給定兩個字串s1和s2,要求判定其中乙個字串是否是另一字串通過若干次迴圈移位後的新字串的子串。例如cdaa是由aabcd兩次移位後產生的新串bcdaa的子串,...
字串移位包含問題
問題描述 給定兩個字串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。下面有兩種解法,第一種是列舉法 第二種是用了一種技巧,實現...