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

例如一个字符串: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))

 

posted on 2014-01-28 17:49  lgy111  阅读(654)  评论(0编辑  收藏  举报

导航