2018西安电子科技大学上机:最长连续公共子序列(动态规划)

Posted 一航代码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018西安电子科技大学上机:最长连续公共子序列(动态规划)相关的知识,希望对你有一定的参考价值。

2018西安电子科技大学上机(二):最长连续公共子序列(动态规划)


任何疑问、意见、建议请公众号留言或联系qq474356284


    输入两个字符串s1,s2。输出最长连续公共子串长度和最长连续公共子串。(改编)

输入格式:

    输入两个字符串s1,s2,长度不大于100,以空格隔开

输出格式:

    输出最长连续共子串长度和长连续公共子

输入样例:

abcdefg qwercdefiok

输出样例:

4
cdef


解决方法:

(1)代码实现:

#include <algorithm>
#include <iostream>
#include <math.h>
#include <string>
#include <vector>
using namespace std;
//公众号:一航代码
int main()
{
    string a, b;
    cin >> a >> b;
    int maxlen = 0, index = 0;
    vector<vector<int>> c(a.size() + 1vector<int>(b.size() + 10));
    for (int i = 1; i <= (int)a.size(); i++) {
        for (int j = 1; j <= (int)b.size(); j++) {
            if (a[i - 1] == b[j - 1]) {
                c[i][j] = c[i - 1][j - 1] + 1;
            }
            if (c[i][j] >= maxlen) {
                maxlen = c[i][j];
                index = i - maxlen;
            }
        }
    }
    cout << maxlen << endl
         << a.substr(index, maxlen) << endl;
    system("pause");
    return 0;
}

以上是关于2018西安电子科技大学上机:最长连续公共子序列(动态规划)的主要内容,如果未能解决你的问题,请参考以下文章

最长公共子序列VS最长连续公共子序列

最长公共子序列 与 最长公共连续子串

最长公共子串与最长公共子序列

最长公共子序列与最长公共字串

最长公共子序列练习

最长公共子串