编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
class Solution { //自己写的,通过了92/118个测试用例
public String longestCommonPrefix(String[] strs) {
if (strs == null || strs.length == 0){
return "";
}
String prefix = strs[0];
for(int i = 1; i < strs.length; i++){
prefix = longCommon(prefix,strs[i]);
if(prefix.length() == 0){
break;
}
}
return prefix;
}
public String longCommon(String str1, String str2){
int length = Math.min(str1.length(),str2.length());
int index = 0;
for(int i = 0; i < length; i++){ //这个地方错误了
while(index < length && str1.charAt(i) == str2.charAt(i)){
index++;
}
}
return str1.substring(0,index);
}
}
class Solution {
public String longestCommonPrefix(String[] strs) {
if (strs == null || strs.length == 0) {
return "";
}
String prefix = strs[0];
int count = strs.length;
for (int i = 1; i < count; i++) {
prefix = longestCommonPrefix(prefix, strs[i]);
if (prefix.length() == 0) {
break;
}
}
return prefix;
}
public String longestCommonPrefix(String str1, String str2) {
int length = Math.min(str1.length(), str2.length());
int index = 0;
while (index < length && str1.charAt(index) == str2.charAt(index)) {
index++;
}
return str1.substring(0, index);
}
}