796 - Rotate String

Question - https://leetcode.com/problems/rotate-string/submissions/1441870873/

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.

 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.

C++

  • class Solution {
    public:
        bool rotateString(string s, string goal) {
            return s.size() == goal.size() && strstr((s + s).data(), goal.data());
        }
    };

JAVA

  • class Solution {
        public boolean rotateString(String s, String goal) {
            return s.length() == goal.length() && (s + s).contains(goal);
        }
    }

PYTHON

  • class Solution:
        def rotateString(self, s: str, goal: str) -> bool:
            return len(s) == len(goal) and goal in (s + s)

Comments