A-A+

字符串处理:最长公共字串

2019年04月04日 算法 字符串处理:最长公共字串已关闭评论 阅读 23 次

字符串处理:最长公共字串

python

# coding: utf-8

# 字符串处理:最长公共字串
# 例如:str1=xyzhaha 1223 543210
#      str2=1223543210xyzccasdasdasd
# 结果:543210
# 代码:IDE暴力循环,手写困难综合症,233333;动态规划方法不再叙述。

def func(str1, str2):
    startStr1 = 0
    startStr2 = 0
    maxLen = 0
    for i in range(len(str1)):
        for j in range(len(str2)):
            tempLength = 0
            tempi = i
            tempj = j
            while tempi < len(str1) and tempj < len(str2) and str1[tempi] == str2[tempj]:
                tempLength += 1
                tempi += 1
                tempj += 1
            if tempLength > maxLen:
                startStr1 = i
                startStr2 = j
                maxLen = tempLength
    return startStr1, startStr2, maxLen

if __name__ == "__main__":
    str1="xyzhaha 1223 543210"
    str2="1223543210xyzccasdasdasd"
    str1Pos, str2Pos, maxLen = func(str1,str2)
    print("str1: %s", str1[str1Pos:str1Pos+maxLen])
    print("str2: %s", str2[str2Pos:str2Pos+maxLen])

 

输出

str1: %s 543210
str2: %s 543210

 

标签:

评论已关闭!

Copyright © C/C++程序员之家 保留所有权利.   Theme  Ality 浙ICP备15011757号-3

用户登录