[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