字串 面試題 01 09 字串輪轉

2021-10-19 14:26:23 字數 1064 閱讀 2615

【題目】

字串輪轉。給定兩個字串s1和s2,請編寫**檢查s2是否為s1旋轉而成(比如,waterbottle是erbottlewat旋轉後的字串)。

【示例1】

輸入:s1 = 「waterbottle」, s2 = 「erbottlewat」

輸出:true

【示例2】

輸入:s1 = 「aa」, s2 = 「aba」

輸出:false

【提示】

字串長度在[0, 100000]範圍內。

【**】

class

solution

:def

isflipedstring

(self, s1:

str, s2:

str)

->

bool

:if s1==

""and s2=="":

return

true

first_pos=s2.find(s1[0]

)while first_pos!=-1

: s3=s2[first_pos:

]+s2[

:first_pos]

if s1==s3:

return

true

first_pos=s2.find(s1[0]

,first_pos+1)

return

false

【一行**】

簡潔,但是時間複雜度和空間複雜度都和上面的方法相比沒有多少改進

class

solution

:def

isflipedstring

(self, s1:

str, s2:

str)

->

bool

:return

(s2+s2)

.find(s1)!=-

1and

len(s1)

==len

(s2)

面試題 01 09 字串輪轉

字串輪轉。給定兩個字串s1和s2,請編寫 檢查s2是否為s1旋轉而成 比如,waterbottle是erbottlewat旋轉後的字串 示例1 輸入 s1 waterbottle s2 erbottlewat 輸出 true 示例2 字串長度在 0,100000 範圍內。說明 你能只呼叫一次檢查子串...

面試題 01 09 字串輪轉

難度 簡單 字串輪轉。給定兩個字串s1和s2,請編寫 檢查s2是否為s1旋轉而成 比如,waterbottle是erbottlewat旋轉後的字串 示例1 輸入 s1 waterbottle s2 erbottlewat 輸出 true 示例2 輸入 s1 aa s2 aba 輸出 false 字串...

面試題 01 09 字串輪轉

我又要開始暴力了,字串長度在 0,100000 範圍內的話o n 2 應該能過 時間o n 2 空間 o n 執行用時 48 ms,在所有 c 提交中擊敗了8.40 的使用者 記憶體消耗 334.2 mb,在所有 c 提交中擊敗了5.04 的使用者 class solution 不必判斷下面這個,否...