码迷,mamicode.com
首页 > 编程语言 > 详细

Java练习之最大相同子串

时间:2015-03-02 18:15:21      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:

 1 package string.demo;
 2 /* 需求:找到两个字符串的最长共同子串
 3  * 思路:
 4  * 1.先看短的那个字符串是否在长的那个字符串中,如果存在,短的那个字符串就是最大共同子串
 5  * 2.如果不存在,那么就将短的那个子串进行长度递减的方式取子串,去长串中判断是否存在,如果
 6  *     存在,找到!
 7  * 
 8  */
 9 public class FindMostLargeSubstring
10 {
11 
12     /**
13      * @param args
14      */
15     public static void main(String[] args)
16     {
17         String s1 = "qwerabcdtyuiop";
18         String s2 = "xcabcdvbn";
19         String s = getMaxSubstring(s1, s2);
20         System.out.println("s = " + s);
21     }
22 
23     /**
24      * 获得最大子串
25      * @param s1
26      * @param s2
27      * @return
28      */
29     private static String getMaxSubstring(String s1, String s2)
30     {
31         String max = null;
32         String min = null;
33         max = (s1.length() > s2.length()) ? s1 : s2;
34         min = max.equals(s1) ? s2 : s1; 
35         for (int i = 0; i < min.length(); i++)
36         {
37             for (int  a = 0, b = min.length() - i; b != min.length() + 1; a++, b++)
38             {
39                 // 取短字符串的的子串,并判断该子串在长字符串中是否存在
40                 String sub = min.substring(a, b);
41                 if (max.contains(sub))
42                     return sub;  
43             }
44         }
45         return null;
46     }
47 
48 }

 

Java练习之最大相同子串

标签:

原文地址:http://www.cnblogs.com/90zeng/p/java_max_common_substring.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!