zoukankan      html  css  js  c++  java
  • 动态规划经典例题(二)

    最长公共子列:

       

     

    输入:

           Abcfbc  abfcab

           Programming  contest

           Abcd  mnp

    输出:

           4

           2

           0

     

    解题思路:

           和最求最长上升子列一样,先设定一个数组存储比较过的状态maxlen[][],一步步的从子问题推到最终问题

           设一个二维数组maxlen[][]

    最长公共子串

    a

    d

    c

    b

    a

    1

    1

    1

    1

    b

    1

    1

    1

    2

    c

    1

    1

    2

    2

    d

    1

    2

    2

    1

           取一个子串内的字母,和另一个子串依次比较

            

      代码如下

        

     1 #include<iostream>
     2 #include<algorithm>
     3 #include<cstring>
     4 using namespace std;
     5 char s1[1000],s2[1000];//两个字符数组
     6 int maxlen[1000][1000];//计数数组
     7 
     8 int main()
     9 {
    10     int i,j;
    11     while(cin>>s1>>s2)//输入两个数组,作为开始 
    12     {
    13         int m = strlen(s1);
    14         int n = strlen(s2);
    15         
    16         //表格初始化 
    17         for(i=1;i<=m;i++)
    18             maxlen[i][0]=0;
    19         for(j=1;j<=n;j++)
    20             maxlen[0][j]=0;
    21             
    22         //取一个数组,一个个的跟另一个数组从头到尾比较
    23         for(i=1;i<=m;i++) 
    24         {
    25             for(j=1;j<=n;j++)
    26                 if(s1[i]==s2[j])
    27                     maxlen[i][j]=maxlen[i-1][j-1]+1;
    28                 else
    29                     maxlen[i][j]=max(maxlen[i-1][j],maxlen[i][j-1]);
    30                 
    31         }    
    32         
    33         cout<<maxlen[m][n];    
    34     }
    35     
    36     
    37     
    38     
    39     
    40     
    41     return 0;
    42 } 
    43  
    View Code

     

          

  • 相关阅读:
    easy_install
    do some projects in macine learning using python
    awesome-scala
    val, lazy, def
    Scala命令设置JVM参数的规则
    CMMI-4中19个PA的大致描述
    项目管理中的十一个原则
    php代码在服务器中查看接值
    PHP进程锁
    解决百度网盘(百度云)分享链接不存在失效、分享的文件已经被取消的问题
  • 原文地址:https://www.cnblogs.com/printwangzhe/p/12318908.html
Copyright © 2011-2022 走看看