Skip to main content
Back to problems
#796
Easy Algorithms

Rotate string

String String Matching
65.1% acceptance
Feb 21, 2026
4815
423
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.

Solution

Rust
Time O(n)
Space O(1)
LeetCode
solution.rs
/*
 * 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.
 */
impl Solution {
  pub fn rotate_string(s: String, goal: String) -> bool {
    s.len() == goal.len() && (s.clone() + &s).contains(&goal as &str)
  }
}