最长公共字串 记录最长字串的结果
来源:互联网 发布:linux 系统下载 编辑:程序博客网 时间:2024/05/24 01:00
沿着结果网斜上方打印然后逆序就可以。
代码:
package codes;public class LongestCommonSubMemo {public static void main(String[] args) {String res = new LongestCommonSubMemo().lonestCommonSub("tofooodie", "toooday");//int max = new LongestCommonSub().Max(res);System.out.println(res);//System.out.println(new LongestCommonSub().recursiveCommonLongestsSub("tofoodie", "tooday"));}//不带 最长记录的public String lonestCommonSub( String str1, String str2){String longestSub ="";int [][] res = new int [str1.length()][str2.length()];//初始化第一行,第一列for( int i=0;i<str1.length();i++){if(str1.charAt(i) == str2.charAt(0)){res[i][0] = 1;}}for( int i=0;i<str2.length();i++){if(str1.charAt(0) == str2.charAt(i)){res[0][i] = 1;}}for( int i = 1 ;i< str1.length();i++){for(int j = 1; j< str2.length();j++){if( str1.charAt(i) == str2.charAt(j)){res[i][j] = res[i-1][j-1]+1;}}}//print arrayfor( int i=0;i< res.length;i++){for( int j =0; j< res[0].length ; j++){System.out.print(res[i][j]+" ");}System.out.println();}// 已经获得resint max = 0;int row = 0;int col = 0;for(int i = 0;i<res.length;i++){for(int j = 0;j<res[0].length;j++){if(res[i][j]> max){max = res[i][j];row = i;col = j;}}}while( row>0 && col>0){longestSub += str1.charAt(row);row--;col--;}StringBuffer sb = new StringBuffer(longestSub);longestSub = sb.reverse().toString();return longestSub;}}
0 0
- 最长公共字串 记录最长字串的结果
- 最长公共字串
- 最长公共字串
- 最长公共字串
- 最长公共字串
- 最长公共字串
- HDU1159最长公共字串
- OJ最长公共字串
- 最长公共字串
- 56 最长公共字串
- LCS 最长公共字串
- java最长公共字串
- 多个字符串的最长公共字串
- 多个字符串的最长公共字串
- hdu 1238 找最长的公共字串
- poj 3450求多个串的最长公共字串
- 最长公共子序列 && 最长公共字串
- PKU1458 最长公共字串 DP
- mybatis
- 软件架构
- 何时需要对时间序列进行Log Transformation
- C语言的错误处理
- Android自学笔记之 多个TextView跑马灯的实现
- 最长公共字串 记录最长字串的结果
- Android自学笔记之ChenkBox复选框
- Android自学笔记之RadioGroup和RadioButton的使用
- iOS开发系列一开发环境与Xcode介绍
- 【翻译自mos文章】当sec_case_sensitive_logon = true后,怎么启用大小写混合的密码?
- Memo Mirantis Fuel 6.1的Internet连接
- HashMap 和Hashtable 的区别?
- XML 文档定义有几种形式?它们之间有何本质区别?解析XML 文档有哪几种方式?
- 说出Servlet 的生命周期,并说出Servlet 和CGI 的区别?