字串翻轉

2021-07-24 02:09:12 字數 586 閱讀 9390

參考:牛客網難題討論

題目描述

假定我們都知道非常高效的演算法來檢查乙個單詞是否為其他字串的子串。請將這個演算法編寫成乙個函式,給定兩個字串s1和s2,請編寫**檢查s2是否為s1旋轉而成,要求只能呼叫一次檢查子串的函式。

給定兩個字串s1,s2,請返回bool值代表s2是否由s1旋轉而成。字串中字元為英文本母和空格,區分大小寫,字串長度小於等於1000。

**解題思路:

以s1=abcd為例,我們先分析s1進行迴圈移位之後的結果:

abcd->bcda->cdab->dabc->abcd …….

假設我們把前面移走的資料進行保留:

abcd->abcda->abcdab->abcdabc->abcdabcd…..

因此看出,對s1做迴圈移位,所得字串都將是字串s1s1的子字串。如果s2可以由s1迴圈移位得到,則一定可以在s1s1上。**

public

boolean

checkreverseequal(string s1, string s2)

return

false;

翻轉字串 翻轉單詞字串

將一句話裡面的單詞進行倒置,標點符號不倒換。比如一句話 i come from china.倒換後變成 china.from come i 解析 解決該問題可以分為兩步,第一步全盤置換為 anihc morf emoc i 第二部對每個單詞進行逐步翻轉,如果不是空格,則開始翻轉單詞。具體 如下 in...

字串翻轉

遞迴入門 字串翻 將字串 test 翻轉,變為 tset 解法 遞迴 此題的遞迴跟判斷回文字串的解法原理一樣。只是不是比較兩端字元,而是直接交換。include using namespace std int str turn int low,int high,char p,int length t...

字串翻轉

字串翻轉是常見筆試面試題,記錄下來 include include void reverse const char src char dest intstrlen strlen src while strlen void strrev ms char input char output int le...