公共子串计算
描述
给定两个只包含小写字母的字符串,计算两个字符串的最大公共子串的长度。
注:子串的定义指一个字符串删掉其部分前缀和后缀(也可以不删)后形成的字符串。
数据范围:字符串长度:1≤s≤150
输入描述:
输入两个只包含小写字母的字符串
输出描述:
输出一个整数,代表最大公共子串的长度
示例1
输入:
asdfas
werasdfaswer输出:
6Java 编程
package cn.net.javapub.demo2.demo;
/**
* @author: shiyuwang
*/
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
InputStreamReader in = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(in);
String str1;
String str2;
while ((str1 = br.readLine()) != null && (str2 = br.readLine()) != null) {
int max = 0;
char[] ch1 = str1.toCharArray();
char[] ch2 = str2.toCharArray();
for (int i = 0; i < str1.length(); i++) {
for (int j = 0; j < str2.length(); j++) {
int s1 = i;
int s2 = j;
int count = 0;
while (ch1[s1] == ch2[s2]) {
s1++;
s2++;
count++;
max = Math.max(count, max);
if (s1 == ch1.length || s2 == ch2.length)
break;
}
}
}
System.out.println(max);
}
}
}展示效果:

















