796. Rotate String

题目地址:https://leetcode.com/problems/rotate-string/description/

大意:看题目的名字就应该能看出来意思了。就是看B是不是由A“旋转”而成的,即A的一部分放到最前面或最后面而成。

思路1:暴力解法。

把A所有的旋转后的字符串都找出来看看有没有一个跟B是一样的。

 def rotateString1(self, A, B):
        if len(A) != len(B):
            return False
        if len(A) == 0:
            return True

        for s in range(len(A)):
            if all(A[(s + i) % len(A)] == B[i] for i in range(len(A))):
                return True
        return False

思路2:巧妙解法。

其实只要看B是不是A+A的子集就行了,python判断子集的方法又是如此简单,一行代码搞定。

def rotateString2(self, A, B):
        """
        :type A: str
        :type B: str
        :rtype: bool
        """
        return len(A) == len(B) and B in A + A

所有题目解题方法和答案代码地址:https://github.com/fredfeng0326/LeetCode
    原文作者:fred_33c7
    原文地址: https://www.jianshu.com/p/dc01a34af892
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞