Check if string is rotated

[Question]: Given two strings s and goal, return true if and only if s can become goal after some number of shifts on s.

shift on s consists of moving the leftmost character of s to the rightmost position.

For example, if s = "abcde", then it will be "bcdea" after one shift.

Input: s = "abcde", goal = "abced"
Output: false
// TC: O(N)
// SC: O(1)
func rotateString(_ s: String, _ goal: String) -> Bool {
    return s == goal || s.count == goal.count && (s+s).contains(goal)
}

let ipStringRot1 = "abcde"
let ipStringRot2 = "cdeab"

let opStringRot = rotateString(ipStringRot1, ipStringRot2)
print("op is-- ", opStringRot)// true

Leave a Comment

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