这题用两个for循环就好了。不过时间用了31ms,24%的位置
-------------------------------------------------------------------------------
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入: ["flower","flow","flight"] 输出: "fl"
示例 2:
输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z
。
--------------------------------------------------------------------------
if (strs.length == 0 || strs == null) {
return "";
}
int j=0;
String zero=strs[0];//给定一个字符串存储相同的前缀
for(int i=1;i<strs.length;i++) {
StringBuffer sb=new StringBuffer();
int a=zero.length();
int b=strs[i].length();
j=(a>b)?b:a; //给j两个字符串长度短的值;
for(int k=0;k<j;k++) {//进入循环判断相同的值给sb;
if(strs[i].charAt(k)==zero.charAt(k)) {
sb.append(strs[i].charAt(k));
}else {
break;
}
}
zero=sb.toString();//每个字符串和前缀相同的值给予zero;
}
return zero;