经典算法的Python实现(5)
2016-01-08 15:37
513 查看
写在前面的话:
文章参考地址:经典算法专题
现有两个序列X=x1,x2,x3,...xiX={x_1,x_2,x_3,...x_i},Y=y1,y2,y3,....,yiY={y_1,y_2,y_3,....,y_i},
设一个C[i,j]C[i,j]: 保存XiX_i与YjY_j的当前最小的LD。
①: 当Xi=Yi X_i = Y_i 时,则C[i,j]=C[i−1,j−1]C[i,j]=C[i-1,j-1];
②:当 Xi!=YiX_i != Y_i 时, 则C[i,j]=Min{C[i−1,j−1],C[i−1,j],C[i,j−1]}C[i,j]=Min\{C[i-1,j-1],C[i-1,j],C[i,j-1]\};
最终我们的C[i,j]C[i,j]一直保存着最小的LD。
学习米铺高级架构师的博文中算法的内容,试着将里面的例子用Python加以实现,尚属练习,不足之处请指正。
文章参考地址:经典算法专题
第五题 字符串相似度
问题描述
概念介绍:字符串相似度解题思路
跟“最长公共子序列”一样,我们采用一个二维数组来保存字符串X和Y当前的位置的最小编辑距离。现有两个序列X=x1,x2,x3,...xiX={x_1,x_2,x_3,...x_i},Y=y1,y2,y3,....,yiY={y_1,y_2,y_3,....,y_i},
设一个C[i,j]C[i,j]: 保存XiX_i与YjY_j的当前最小的LD。
①: 当Xi=Yi X_i = Y_i 时,则C[i,j]=C[i−1,j−1]C[i,j]=C[i-1,j-1];
②:当 Xi!=YiX_i != Y_i 时, 则C[i,j]=Min{C[i−1,j−1],C[i−1,j],C[i,j−1]}C[i,j]=Min\{C[i-1,j-1],C[i-1,j],C[i,j-1]\};
最终我们的C[i,j]C[i,j]一直保存着最小的LD。
代码实现
相关文章推荐
- python IO多路复用之select
- python--迭代--7
- leetcode之Intersection of Two Linked Lists
- 使用国内镜像源来加速python pypi包的安装
- 经典算法的Python实现(4)
- python3+django 支持 mysql
- 1.4.0 GENERATING CONTENT(生成内容)
- 如何处理Python3.4 使用pymssql 乱码问题
- Python的getattr(),setattr(),delattr(),hasattr()
- Python之数据聚合与分组运算
- Python之数据聚合与分组运算
- 1.3.4 ERROR PAGES(错误页面)
- 经典算法的Python实现(3)
- python操作Excel--使用xlrd
- 1.3.3 ROUTING STATIC FILES(路由静态文件)
- python--切片--6
- Python3中的zip()
- python学习之序列化
- python学习日记_第十天(ex25~26)
- 菜鸟学python(4) if语句