LeetCode 796. Rotate String

Description

https://leetcode.com/problems/rotate-string/

We are given two strings, A and B.

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:

  • A and B will have length at most 100.

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).

Leave a Reply

Your email address will not be published. Required fields are marked *