796. Rotate String
Difficulty: Easy
Topics: String, String Matching
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-
sandgoalconsist of lowercase English letters.
Solution:
We can take advantage of the properties of string concatenation. Specifically, if we concatenate the string s with itself (i.e., s + s), all possible rotations of s will appear as substrings within that concatenated string. This allows us to simply check if goal is a substring of s + s.
Let's implement this solution in PHP: 796. Rotate String
<?php
/**
* @param String $s
* @param String $goal
* @return Boolean
*/
function rotateString($s, $goal) {
...
...
...
/**
* go to ./solution.php
*/
?>
Explanation:
Length Check: We first check if the lengths of
sandgoalare the same. If they are not, we immediately returnfalse, as it's impossible forsto be transformed intogoal.Concatenation: We concatenate the string
swith itself to createdoubleS.Substring Check: We use the
strpos()function to check ifgoalexists as a substring indoubleS. If it does, we returntrue; otherwise, we returnfalse.
Complexity:
- Time Complexity: O(n), where n is the length of the string, due to the concatenation and substring search.
- Space Complexity: O(n) for the concatenated string.
This solution efficiently determines if one string can become another through rotations.
Contact Links
If you found this series helpful, please consider giving the repository a star on GitHub or sharing the post on your favorite social networks 😍. Your support would mean a lot to me!
If you want more helpful content like this, feel free to follow me:
Top comments (0)