"""
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:

A and B will have length at most 100.
"""


class Solution(object):
    def rotateString(self, A, B):
        """
        :type A: str
        :type B: str
        :rtype: bool
        """

        """
        Method 1: Brute Force
        """
        n = len(A)
        while n > 0:
            A = A[1:] + A[:1]
            if B == A:
                return True
            n -= 1
        return False

        """
        Method 2: 
        39 / 39 test cases passed.
        Status: Accepted
        Runtime: 33 ms
        """
        return B in (A + A)
"""
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:

A and B will have length at most 100.
"""


class Solution(object):
    def rotateString(self, A, B):
        """
        :type A: str
        :type B: str
        :rtype: bool
        """

        """
        Method 1: Brute Force
        """
        n = len(A)
        while n > 0:
            A = A[1:] + A[:1]
            if B == A:
                return True
            n -= 1
        return False

        """
        Method 2: 
        39 / 39 test cases passed.
        Status: Accepted
        Runtime: 33 ms
        """
        return B in (A + A)
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:  A and B will have length at most 100. :type A: str         :type B: str         :rtype: bool Method 1: Brute Force Method 2:          39 / 39 test cases passed.         Status: Accepted         Runtime: 33 ms