您当前的位置: 首页 > 

IT之一小佬

暂无认证

  • 0浏览

    0关注

    1192博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

字符串轮转

IT之一小佬 发布时间:2021-02-21 21:08:04 ,浏览量:0

字符串轮转

给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串)。

示例1:

  •  输入:s1 = "waterbottle", s2 = "erbottlewat"
  •  输出:True

示例2:

  •  输入:s1 = "aa", s2 = "aba"
  •  输出:False
示例代码1:
class Solution(object):
    def isFlipedString(self, s1, s2):
        """
        :type s1: str
        :type s2: str
        :rtype: bool
        """
        if len(s1) != len(s2):
            return False
        s3 = s1 + s1
        return s2 in s3


# s1 = "waterbottle"
# s2 = "erbottlewat"
s1 = "aa"
s2 = "aba"
a = Solution()
b = a.isFlipedString(s1, s2)
print(b)
示例代码2:
class Solution(object):
    def isFlipedString(self, s1, s2):
        """
        :type s1: str
        :type s2: str
        :rtype: bool
        """
        return len(s1) == len(s2) and s2 in s1 * 2


# s1 = "waterbottle"
# s2 = "erbottlewat"
s1 = "aa"
s2 = "aba"
a = Solution()
b = a.isFlipedString(s1, s2)
print(b)
运行效果: 思路解析:

方法一: 倍增s2,若长度相同的情况下,s1一定为s3的一个子串 复杂度分析

  • 时间复杂度:O(N)
  • 空间复杂度:O(N)
关注
打赏
1665675218
查看更多评论
立即登录/注册

微信扫码登录

0.0590s