由于求的是最长公共前缀,不妨找到最短的字符串开始枚举其每一个字符,直到有字符和其他字符串该位置字符不同时break,输出即可
public class Solution {
public String longestCommonPrefix(String[] strs) {
if( strs == null || strs.length == 0 )
{
return "";
}
if( strs.length == 1 )
{
return strs[0];
}
int len = strs.length;
int MaxLen = 99999999,MF=0;
String res = "";
for( int i=0;i<len;i++ )
{
if( strs[i].length()<MaxLen )
{
MaxLen = strs[i].length();
MF = i;
}
}
int flag = 1,count=-1;
for( int i=0;i<MaxLen;i++ )
{
if( flag == 0 )
{
break;
}
for( int j=0;j<len;j++ )
{
if( strs[j].charAt(i) != strs[MF].charAt(i) )
{
flag = 0;
break;
}
}
if( flag == 1 )
{
count = i;
}
}
for( int i=0;i<=count;i++ )
{
res += strs[MF].charAt(i);
}
return res;
}
}