java版求字符串的最大公共子串
2016-08-25 15:14
239 查看
package com.qianqiang.sort; public class CommonSubstring { public static void main(String[] args) { // 待求 char[] a={'a','b','c','d','e'}; char[] b={'d','e','c','d','e'}; // 定义存储矩阵 int[][] table=new int[a.length][b.length]; commomtSubstring(a,b,table); } private static void commomtSubstring(char[] a, char[] b, int[][] table) { // TODO Auto-generated method stub // 最大字串a的开始位置 int start1=-1; // 最大字串2的开始位置 int start2=-1; // 最大子串的长度 int longest=0; for(int j=0;j<b.length;j++) { table[0][j]=(a[0]==b[j]?1:0); } for(int i=1;i<a.length;i++) { table[i][0]=(a[i]==b[0]?1:0); for(int j=1;j<b.length;j++) { if(a[i]==b[j]) { table[i][j]=table[i-1][j-1]+1; } } } for(int i=0;i<a.length;i++) { for(int j=0;j<b.length;j++) { if(longest<table[i][j]) { longest=table[i][j]; start1=i-longest+1; start2=j-longest+1; } } } System.out.print("a从"+start1+",b从"+start2); } }
相关文章推荐
- java实现字符串匹配问题之求两个字符串的最大公共子串
- java实现字符串匹配求两个字符串的最大公共子串
- java实现字符串匹配问题之求两个字符串的最大公共子串
- 关于 java中 求两个字符串中最大的公共子串之引发对return的用法探讨
- 找出两个字符串中最大的公共子串(java实现)
- N个字符串的最大公共子串 (暴力解法)
- 求多个字符串的最大公共子串
- 找出两个字符串中最大的公共子串的简单实现
- 求N个字符串的最大公共子串
- 最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离
- 给定字符串A和B,输出A和B中的最大公共子串。
- 查找两字符串的最大公共子串
- 两个或N个字符串最大公共子串算法
- 求两字符串最大公共子串
- 两个字符串的最大公共子串
- 最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离(链接)
- 转:最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离
- 两个或N个字符串最大公共子串算法
- 求两个字符串的公共最大子字符串,如asdfsdkgf,kllsdkabc的最大子串为sdk
- 求多个字符串的最大公共子串---后缀数组