判断一个字符串是另一个字符串的循环移位

例如一个字符串:s1 = ABCD 和 s2 = ACBD

检查一个字符串s1 是不是 由 s2 循环移位得到的

 

思路如下: 可以变化字符串s1 为 ABCDABCD

这样判断s2 是不是 s1 的字串

那么,我们可以用前面写的KMP匹配算法来判断一个字符串是否是另一个字符串的字串

判断一个字符串是另一个字符串的循环移位
#例如一个字符串aaabbb,又有一个字符串bbaaab,
#判断后一个字符串是不是另一个字符串进行旋转后所得到的

import KMPAlgorithm
def  isContainOther(string1,string2):
    if KMPAlgorithm.KMPAlgorithm(string1,string2):
        print "string2 is sting1 rotation type"
    else:
        print "string2 can not make by string1"


def connectString(string1):
    string1 += string1
    return string1



if __name__ == "__main__":
    string1 = "ABCD"
    string2 = "CDAA"

    isContainOther(string2,connectString(string1))
判断一个字符串是另一个字符串的循环移位

判断一个字符串是另一个字符串的循环移位

上一篇:leetcode Valid Palindrome 难度系数2 2.25


下一篇:2013年:各大IT公司待遇【转载】