最长公共子序列(LCS)问题 python
来源:互联网 发布:安畅网络 编辑:程序博客网 时间:2024/05/26 08:43
#!/usr/bin/env python# -*- coding: utf-8 -*def lcs(arr1, arr2): m = len(arr1) n = len(arr2) c = [[0 for k in range(n + 1)] for k in range(m + 1)] b = [[-1 for k in range(n)] for k in range(m)] for i in range(1, m + 1): for j in range(1, n + 1): if arr1[i - 1] == arr2[j - 1]: c[i][j] = c[i - 1][j - 1] + 1 b[i - 1][j - 1] = '↖' elif c[i - 1][j] >= c[i][j - 1]: c[i][j] = c[i - 1][j] b[i - 1][j - 1] = '↑' else: c[i][j] = c[i][j - 1] b[i - 1][j - 1] = '←' rlcs = [] get_lcs_arr(b, arr1, len(arr1) - 1, len(arr2) - 1, rlcs) return c[m][n], rlcs def get_lcs_arr(b, X, i, j, arr): if i < 0 or j < 0: return if b[i][j] == '↖': get_lcs_arr(b, X, i - 1, j - 1, arr) arr.append(X[i]) elif b[i][j] == '↑': get_lcs_arr(b, X, i - 1, j, arr) else: get_lcs_arr(b, X, i, j - 1, arr)
0 0
- 最长公共子序列(LCS)问题 python
- python实现求解最长公共子序列LCS问题
- Python 实现最长公共子序列LCS
- 最长公共子序列问题LCS
- 最长公共子序列(LCS)问题
- LCS最长公共子序列问题
- 最长公共子序列(LCS)问题
- 最长公共子序列(LCS)问题
- 最长公共子序列(LCS)问题
- 最长公共子序列(LCS)问题
- Prolog 最长公共子序列 LCS 问题
- 最长公共子序列问题LCS
- 最长公共子序列(LCS)问题
- LCS(最长公共子序列问题)
- 最长公共子序列(LCS问题)
- 最长公共子序列LCS问题
- 最长公共子序列LCS问题
- 最长公共子序列(LCS)问题分析
- 杭州淘宝活动促销推广策划—聚本淘宝活动杭州淘宝活动促销推广策划—聚本
- Android lollipop 更新问题
- iOS8 App Groups
- android listview异步加载图片错位,重复,闪烁分析以及解决方案
- 第十二周 项目2:(3)刑警的射击成绩
- 最长公共子序列(LCS)问题 python
- 第12周项目 2.3 刑警的射击成绩
- leetcode 之 Search Insert Position
- JAVA wait(), notify(),sleep详解
- Nginx安装部署
- android SDK manager 无法获取更新版本列表
- ORACLE SQLPLUS的安全性
- jQuery根据元素值删除数组元素
- 牛顿法和拟牛顿法