天天看点

程序员面试金典 面试题 01.09. 字符串轮转

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

示例1

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

示例2

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

解答 python3

class Solution:
    def isFlipedString(self, s1: str, s2: str) -> bool:
        if len(s1)!= len(s2):
            return False;
        if len(s1)+len(s2)==0:
            return True;
        j=0;
        for i in range(len(s1)):
            if s2[j:]==s1[:len(s1)-j] and s1[len(s1)-j:]==s2[:j]:
                return True;
            j=j+1;
        return False;
           

一个很巧妙的方法

return len(s1)==len(s2) and s2 in s1+s1;