<gh_stars>0
# 796. Rotate String
# <EMAIL>

# 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
        """
        # sol 1:
        # runtime: 38ms
        if not A or not B:
            return False
        if A == B:
            return True
        if len(A)!=len(B):
            return False
        
        for i in range(len(A)):
            if (A[i:]+A[0:i]) == B:
                return True
        return False


        # sol 2:
        # runtime: 34ms
        return len(A) == len(B) and B in (A + A)


        
# 796. Rotate String
# <EMAIL>

# 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
        """
        # sol 1:
        # runtime: 38ms
        if not A or not B:
            return False
        if A == B:
            return True
        if len(A)!=len(B):
            return False
        
        for i in range(len(A)):
            if (A[i:]+A[0:i]) == B:
                return True
        return False


        # sol 2:
        # runtime: 34ms
        return len(A) == len(B) and B in (A + A)
# 796. Rotate String # <EMAIL> # 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 # sol 1: # runtime: 38ms # sol 2: # runtime: 34ms