zoukankan      html  css  js  c++  java
  • 最长公共子序列

    #include<bits/stdc++.h>
    using namespace std;
    #define index(i) i-1
    const int N=110;
    string a,b;
    //i代表a串右位置、j代表b串右位置
    //比较ai bj 如果=。。。
    //如果!=,那么1.假设i存在于最长中j不在;2.假设j存在于最长中i不在3.ij都不在,对123取最大值
    //12包含了3
    int dp[N][N]={0};
    int main() {
        cin>>a>>b;
    //    a.insert(0,"@");
    //    b.insert(0,"@");
    //    cout<<a<<b;
        //下标从1开始方便
    //    for(int i=1;i<a.size();i++){
    //        for(int j=1;j<b.size();j++){
    //            if(a[i]==b[j]) dp[i][j]=dp[i-1][j-1]+1;
    //            else dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
    //        }
    //    }
    //下标从0开始,想像是从1开始,这样ij都不变,但是去字符串的值要位移,即index
        for(int i=1;i<=a.size();i++){
            for(int j=1;j<=b.size();j++){
                if(a[index(i)]==b[index(j)]) dp[i][j]=dp[i-1][j-1]+1;
                else dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
            }
        }
    //    cout<<dp[a.size()-1][b.size()-1]<<endl;
        cout<<dp[a.size()][b.size()]<<endl;
        return 0;
    }
  • 相关阅读:
    Python解释器相关知识
    简单了解下Flask
    Scoket编程
    __file__的作用
    jquery编写可折叠列表
    浑浑噩噩的一天
    js实现杨辉三角
    js闭包
    python读取word表格
    HTMLTestRunner报告
  • 原文地址:https://www.cnblogs.com/MorrowWind/p/13056335.html
Copyright © 2011-2022 走看看