796.旋转字符串:暴力模拟
【LetMeFly】796.旋转字符串:暴力模拟
力扣题目链接:https://leetcode.cn/problems/rotate-string/
给定两个字符串, s 和 goal。如果在若干次旋转操作之后,s 能变成 goal ,那么返回 true 。
s 的 旋转操作 就是将 s 最左边的字符移动到最右边。
- 例如, 若
s = 'abcde',在旋转一次之后结果就是'bcdea'。
示例 1:
输入: s = "abcde", goal = "cdeab" 输出: true
示例 2:
输入: s = "abcde", goal = "abced" 输出: false
提示:
1 <= s.length, goal.length <= 100s和goal由小写英文字母组成
解题方法:暴力模拟
如果两个字符串不等长,则直接返回false。否则(就不需要担心下标越界的问题了)假设字符串长度为$n$:
共计进行$n$次匹配,使用一个变量$diff$从$0$到$n-1$枚举,若存在某个$diff$可以使得$s[(i+diff)\mod n]$和$goal[i]$全部相等,则返回true。
否则返回false。
- 时间复杂度$O(len(s)^2)$
- 空间复杂度$O(1)$
AC代码
C++
1 | |
1 | |
同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~
千篇源码题解已开源
796.旋转字符串:暴力模拟
https://blog.letmefly.xyz/2026/05/03/LeetCode 0796.旋转字符串/