最长公共子序列

来源:互联网 发布:怎么自学javascript 编辑:程序博客网 时间:2024/05/22 02:00

给出两个字符串,找到最长公共子序列(LCS),返回LCS的长度。

说明

最长公共子序列的定义:

  • 最长公共子序列问题是在一组序列(通常2个)中找到最长公共子序列(注意:不同于子串,LCS不需要是连续的子串)。该问题是典型的计算机科学问题,是文件差异比较程序的基础,在生物信息学中也有所应用。
  • https://en.wikipedia.org/wiki/Longest_common_subsequence_problem
样例

给出"ABCD""EDCA",这个LCS是"A" (或 D或C),返回1

给出 "ABCD""EACB",这个LCS是"AC"返回 2

点题:转移方程,如何避免显示的初始化

class Solution {public:    /*     * @param A: A string     * @param B: A string     * @return: The length of longest common subsequence of A and B     */    int longestCommonSubsequence(string &A, string &B) {        // write your code here        if (A.size() == 0 || B.size() == 0) {            return 0;        }        vector<vector<int>> dp(A.size() + 1, vector<int>(B.size() + 1, 0));        for (int i = 1; i <= A.size(); i++) {            for (int j = 1; j <= B.size(); j++) {                if (A[i - 1] == B[j - 1]) {                    dp[i][j] = dp[i - 1][j - 1] + 1;                } else {                    dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);                }            }        }        return dp[A.size()][B.size()];    }};





阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 云阳山住宿 云阳房产网 云阳交友网 南召县云阳镇 云陌 云陌阅读 七陌云客服 清穿之四爷宠妾日常 云陌槿 快穿之恶毒女配要逆袭 云轻陌 小隐于村 杨梅酸却很甜 难做的菜 云雀公母分辨图片说明 云雀结 云雀mp3清晰鸟叫声 云雾街 天台山云雾茶 木兰云雾山怎么去 黄陂云雾山好玩吗 勉县云雾山风景区 云雾满山飘是那首歌的歌词 云雾山在哪里 黄陂云雾山风景区 云雾山风景区门票多少钱 武汉木兰云雾山 云雾山传奇 高山云雾茶多少钱一斤 南岳云雾茶多少钱一斤 云雾茶多少钱一斤 云雾茶的功效与作用 贵定云雾茶 花果山云雾茶 江西庐山云雾茶 云雾茶属于什么茶 云雾茶产地 云雾茶图片 连云港特产云雾茶价格 高山云雾茶属于什么茶 安顶云雾茶 华顶云雾茶 云雾茶的产地 龙井问茶旅游