LeetCode刷题记录——第796题(旋转字符串)

版权声明:此BLOG为个人BLOG,内容均来自原创及互连网转载。最终目的为记录自己需要的内容或自己的学习感悟,不涉及商业用途,转载请附上原博客。 https://blog.csdn.net/bulo1025/article/details/88351051

题目描述

给定两个字符串, A 和 B。

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

示例 1:

输入: A = ‘abcde’, B = ‘cdeab’
输出: true

示例 2:

输入: A = ‘abcde’, B = ‘abced’
输出: false

思路分析

  • 如果A和B的长度不相同,直接返回False
  • 如果A和B直接相等,返回True
  • 用字符串切片操作来进行字符串的移动

代码示例

class Solution(object):
    def rotateString(self, A, B):
        """
        :type A: str
        :type B: str
        :rtype: bool
        """
        m = len(A)
        n = len(B)
        if m != n:
            return False
        if A == B:
            return True
        for i in range(m):
            if A[i:] + A[0:i] == B:
                return True
        return False

猜你喜欢

转载自blog.csdn.net/bulo1025/article/details/88351051