[Question]: Given two strings s
and goal
, return true
if and only if s
can become goal
after some number of shifts on s
.
A 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