Description
https://leetcode.com/problems/rotate-string/
We are given two strings, A and B.
A shift on A consists of taking string A and moving the leftmost character to the rightmost position. For example, if A = 'abcde', then it will be 'bcdea' after one shift on A. Return True if and only if A can become B after some number of shifts on A.
Example 1: Input: A = 'abcde', B = 'cdeab' Output: true Example 2: Input: A = 'abcde', B = 'abced' Output: false
Note:
AandBwill have length at most100.
Explanation
Moving index and build new strings. Check if any of new strings matches string B.
Python Solution
class Solution:
def rotateString(self, A: str, B: str) -> bool:
if not A and not B:
return True
result = ""
i = 1
while i < len(A):
result = A[i:] + A[:i]
if result == B:
return True
i += 1
return False
- Time Complexity: O(N).
- Space Complexity: O(N).