当前位置:   article > 正文

题目 1317: 最长公共子序列lcs

题目 1317: 最长公共子序列lcs

题目描述:

一个字符串A的子串被定义成从A中顺次选出若干个字符构成的串。如A=“cdaad" ,顺次选1,3,5个字符就构成子串" cad" ,现给定两个字符串,求它们的最长共公子串。

代码:

  1. package lanqiao;
  2. import java.util.*;
  3. public class Main {
  4. public static void main(String[] args) {
  5. Scanner sc = new Scanner(System.in);
  6. char[] cs1 = sc.next().toCharArray();
  7. char[] cs2 = sc.next().toCharArray();
  8. int[][] c = new int[cs1.length + 1][cs2.length + 1];
  9. int max = 0;
  10. for(int i = 1;i < c.length;i ++)
  11. {
  12. for(int j = 1;j < c[i].length;j ++)
  13. {
  14. if(cs1[i - 1] == cs2[j - 1])
  15. c[i][j] = c[i - 1][j - 1] + 1;
  16. else{
  17. c[i][j] = Math.max(c[i - 1][j],c[i][j - 1]);
  18. }
  19. if(c[i][j] > max)
  20. {
  21. max = c[i][j];
  22. }
  23. }
  24. }
  25. System.out.println(max);
  26. }
  27. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/158729?site
推荐阅读
相关标签
  

闽ICP备14008679号