两个串最长公共子序列的长度:

  1. public class Main {  
  2. //求两个串最长公共子序列的长度  
  3. //abcdef    abc  abd  bdf  
  4.   
  5.   
  6. public static int f(String s1,String s2){  
  7.     if(s1.length()==0||s2.length()==0){  
  8.     return 0;     
  9.     }  
  10.         /** 
  11.          * 主体部分 
  12.          */  
  13.     if(s1.charAt(0)==s2.charAt(0)){     //如果头相同  
  14.         return f(s1.substring(1),s2.substring(1))+1;    //在交给下级的比较结果中加1   
  15.     }else{  
  16.         return Math.max(f(s1.substring(1),s2),f(s1,s2.substring(1)));   //返回:max的选择执行,谁大执行谁  
  17.         //执行方式(降低规模!!!):谁大切谁,轮流切  
  18.     }  
  19. }     
  20. /** 
  21.  * 主体逻辑: 
  22.  * 1.比较第一个,相同就加1继续执行(过程) 
  23.  * 2.不同就去掉长的头元素,继续比较(变化) 
  24.  * 3.一直到有一方为0,返回0种情况(出口) 
  25.  * @param args 
  26.  */  
  27. public static void main(String[] args) {  
  28. int k=f("fabcdk","xbacd");  
  29. System.out.println(k);            
  30. }  
  31.     }  
上一篇:300元打造智能影音中心


下一篇:大文件传输软件的优势有哪些?