字串移位包含的問題

2021-07-04 03:02:16 字數 574 閱讀 3718

//字串移位包含的問題

/*給定兩個字串s1和s2,要求判斷s2是否能夠被s1做迴圈移位得到的字串包含,

例如,給定s1=aabcd和s2=cdaa,返回true;給定s1=abcd和s2=acbd,返回false

在做這道題的時候我發現了乙個很容易出錯,但是去不容易找到原因。主要原因是我們對於全變數初始化位置錯誤,導致對於多次輸入字串判斷的情況,如果前面的返回值位true,則後面都會返回true

#include

#include

using namespace std;

int main()

}if(result)

else

cout<

return 0;

執行結果如下:

發生錯誤的原因是:

將全域性變數result的初始化發在了while前面bool result=false;

修改:將bool result=false;放在while迴圈內就能正常執行了。

字串移位包含問題

問題描述 給定兩個字串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。下面有兩種解法,第一種是列舉法 第二種是用了一種技巧,實現...

字串移位包含的問題

題目 給定兩個字串 s1 和 s2,要求判定 s2 是否能夠被通過 s1 作迴圈移位 rotate 得到的字串包含.例如,給定 s1 aabcd 和 s2 cdaa,返回 true 給定 s1 abcd 和 s2 acbd,返回 false.解法1 直接模擬,對 s1 進行迴圈移位,在判斷字串 s2...