796.旋转字符串

旋转字符串

给定两个字符串, s 和 goal。如果在若干次旋转操作之后,s 能变成 goal ,那么返回 true 。

s 的旋转操作就是将 s 最左边的字符移动到最右边。

示例 1:

输入:s = “abcde”, goal = “cdeab”
输出:true

示例 2:

输入:s = “abcde”, goal = “abced”
输出:false

提示:

  • 1 <= s.length, goal.length <= 100
  • s 和 goal 由小写英文字母组成

解析

将 s 拼接自身形成 s+s,如果 goal 是 s 的旋转结果,那么 goal 一定是 s+s 的子串。

1
2
3
var rotateString = function (s, goal) {
return s.length === goal.length && (s + s).includes(goal);
};

时间复杂度 O(n),空间复杂度 O(n)。非常简洁的解法。


796.旋转字符串
https://leetcode.lz5z.com/796.rotate-string/
作者
tickli
发布于
2024年12月1日
许可协议