[leetcode] 796。文字列を回転@python



796 Rotate String Python



元の質問

AとBの2つの文字列が与えられます。

Aのシフトは、文字列Aを取得し、左端の文字を右端の位置に移動することで構成されます。たとえば、A =「abcde」の場合、Aを1シフトすると「bcdea」になります。Aを数回シフトした後にAがBになることができる場合にのみ、Trueを返します。



例1:
入力:A =「abcde」、B =「cdeab」
出力:true

例2:
入力:A =「abcde」、B =「abced」
出力:false
注意:



AとBの長さは最大100です。

解決

Aをトラバースし、文字がBの最初の文字と等しい場合は、AをBに再構成し、再構成が成功した場合はTrueを返します。
時間:O(n)
スペース:O(n)

コード

class Solution(object): def rotateString(self, A, B): ''' :type A: str :type B: str :rtype: bool ''' # base case if A == B: return True # A takes some shift for i, char in enumerate(A): if char == B[0]: # try to reconstruct B left, right = A[:i], A[i:] if right + left == B: return True return False