pythonTest

来源:互联网 发布:网络会员管理系统 编辑:程序博客网 时间:2024/06/10 03:03
#-*-coding:utf-8-*-import numpy as npfrom numpy import *# 牛牛有两个字符串(可能包含空格),牛牛想找出其中最长的公共连续子串,希望你能帮助他,并输出其长度。# 动态规划问题,对于字符串a,b.# 1)先新建一个状态转移矩阵len(a)*len(b);2)初始化第一行、第一列;3)更新矩阵,matrix[i][j]=1+matrix[i-1][j-1]end_len = 0temp_len = 0str1 = raw_input()str2 = raw_input()# 新建状态转移矩阵new_matrix = zeros([len(str1), len(str2)], int8)# 初始化矩阵第一行、第一列for i, ch1 in enumerate(str1):    if ch1 == str2[0]:        new_matrix[i][0] = 1for j, ch2 in enumerate(str2):    if str1[0] == ch2:        new_matrix[0][j] = 1#更新矩阵for i, ch1 in enumerate(str1):    for j, ch2 in enumerate(str2):        if ch1 == ch2 and i > 0 and j > 0:            new_matrix[i][j] = new_matrix[i-1][j-1] + 1# 找最长公共字串长度print np.amax(new_matrix)# print new_matrix
0 0
原创粉丝点击