Questions
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.
Example 1:
Input: s = “abcde”, goal = “cdeab” Output: true Example 2:
Input: s = “abcde”, goal = “abced” Output: false
Constraints:
1 <= s.length, goal.length <= 100 s and goal consist of lowercase English letters.
Solution
class Solution {
public:
bool rotateString(string s, string goal) {
s.append(s);
if(s.find(goal) != string::npos && s.length()/2 == goal.length()) return true;
return false;
}
};
This was leetcode daily challenge. If the given s is abcde, then s+s is abcdeabcde. If goal is cdeab, then it should be in abcdeabcde. If the length of goal is not half of the length of s, then it is not possible to rotate s to goal.