先对字符串排序,第一个和最后一个差别最大,计算差别最大的最小公共子串变为全局的最小公共子串
package com.bupt;
import java.util.Arrays;
public class T14 {
public String longestCommonPrefix(String[] strs) {
Arrays.sort(strs);
String a = strs[0];
String b = strs[strs.length-1];
int min = Math.min(a.length(),b.length());
int commonLength = 0 ;
for (int i = 0; i < min; i++) {
if(a.substring(0,i+1).equals(b.substring(0,i+1))){
commonLength++;
}else{
break;
}
}
if(commonLength==0) return "";
return a.substring(0,commonLength);
}
public static void main(String[] args) {
String []strs = {"1flower","2flow","3flight"};
System.out.println(new T14().longestCommonPrefix(strs));
}
}
作者:你的雷哥
本文版权归作者所有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。