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

示例1:

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

示例2:

输入:s1 = "aa", s2 = "aba"
输出:False

提示:

字符串长度在[0, 100000]范围内。

说明:

  • 你能只调用一次检查子串的方法吗?

Python 解答:
1.遍历

class Solution:
    def isFlipedString(self, s1: str, s2: str) -> bool:
        if not s1 and not s2:
            return True
        if len(s1) == len(s2) and len(set(s1)) == len(set(s2)):
            for i in range(len(s1)):
                if s2[i:] + s2[:i] == s1:
                    return True
            else: return False
        else:
            return False

2.字符串查找

class Solution:
    def isFlipedString(self, s1: str, s2: str) -> bool:
        if len(s1) != len(s2):
            return False
        if (s2+s2).find(s1)+1:
            return True
        else: return False
最后修改日期: 2021年4月22日

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。