力扣(LeetCode)旋转字符串 个人题解

Posted Axiangcoding

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了力扣(LeetCode)旋转字符串 个人题解相关的知识,希望对你有一定的参考价值。

给定两个字符串, A 和 B

A 的旋转操作就是将 A 最左边的字符移动到最右边。 例如, 若 A = ‘abcde‘,在移动一次之后结果就是‘bcdea‘ 。如果在若干次旋转操作之后,A 能变成B,那么返回True

示例 1:
输入: A = ‘abcde‘, B = ‘cdeab‘
输出: true

示例 2:
输入: A = ‘abcde‘, B = ‘abced‘
输出: false

注意:

  • A 和 B 长度不超过 100

 

 

正常的做法比较清晰了,可以一次移位一个去比较,全部移位一遍后没有匹配成功则返回false

在评论区看到一个神奇做法,将A复制一份,首尾相连,即A+A,然后判断B是否在A+A里面就可以了

非常巧妙而且快捷。

代码如下:

class Solution:
    def rotateString(self, A: str, B: str) -> bool:
        return len(A) == len(B) and B in (A+A)

 

以上是关于力扣(LeetCode)旋转字符串 个人题解的主要内容,如果未能解决你的问题,请参考以下文章

力扣(LeetCode)验证回文串 个人题解

力扣(LeetCode)字符串中的第一个唯一字符 个人题解

力扣(LeetCode)字符串中的单词数 个人题解

力扣(LeetCode)学生出勤记录I 个人题解

精选力扣500题 第73题 LeetCode 153. 寻找旋转排序数组中的最小值c++/java详细题解

精选力扣500题 第17题 LeetCode 33. 搜索旋转排序数组c++详细题解