2014美团网的一个笔试题 求两字符串的最大公共字符串长度

来源:互联网 发布:淘宝怎么签到领金币 编辑:程序博客网 时间:2024/05/02 19:20
最近美图网校园招聘当中的一道题,求两字符串的最大公共字符串长度,本人写的JAVA代码实现如下: 
public class MaxConString {/** * 计算两字符串最大公共字符串长度 */public static void main(String[] args) {char[] s1 = "jiajiangayaoyao".toCharArray();//测试数据char[] s2 = "jiangyaoyao".toCharArray();int c = new MaxConString().getCount(s1, s2);System.out.println("两字符串的共同字符串长度为:"+c);}private int getSubCount(char[] s1,char[] s2, int i ,int j){//计算两字符串从s1的第i位置s2的第j位置的之后字符串长度//如“abc”和“ab”则返回conut为2int count=1;while(++i<s1.length&&++j<s2.length&&s1[i]==s2[j]){count++;}return count;}private int getCount(char[]s1,char[]s2){//计算两字符串的共同字符串长度int count = 0;for(int i=0;i<s1.length;i++)for(int j=0;j<s2.length;j++)if(s1[i]==s2[j]){if(this.getSubCount(s1, s2, i, j)>count)count = this.getSubCount(s1, s2, i, j);}return count;}}

 

测试结果:两字符串的共同字符串长度为:6

原创粉丝点击