Write a function to find the longest common prefix string amongst an array of strings.
就是一个字符数组,找字符数组中所有字符串中的最常前缀。
解题思路:首先两个字符比较,找出最长前缀,然后拿前缀与其他字符比较。这里面要注意的是,比较的次数最多是最短字符的长度。
public String longestCommonPrefix(List<String> strs) {
int strsLen=strs.size();
if(strsLen==0)return "";
int i=0;
String str=null;
String longestCommonPrefix="";
while(i<strsLen)
{
str=strs.get(i);
if(i==0)longestCommonPrefix=str;
else
longestCommonPrefix=LCP2String(str,longestCommonPrefix);
i++;
}
return longestCommonPrefix;
}
public String LCP2String(String str1,String str2)//比较两个字符的最长前缀
{
int len1=str1.length();
int len2=str2.length();
int len=len1>len2?len2:len1;
int i=0;
char ch1=' ';
char ch2=' ';
while(i<len)
{
ch1=str1.charAt(i);
ch2=str2.charAt(i);
if(ch1==ch2)i++;
else break;
}
if(i==0)return "";
else return str1.substring(0,i);
}