题目
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。
示例 :
输入: [“flower”,“flow”,“flight”]
输出: “fl”
注意点
1、数组长度为0,直接返回“”;(防止strs[0]出现空指针异常)
2、把数组的第一个字符串作为最长公共前缀;
3、获取新最长公共前缀必须放在while语句之外,不然可能会获取不准确;
4、最长公共前缀为空时,无需再判断,直接返回“”。
实现
public String longestCommonPrefix(String[] strs) {
//数组长度为0,直接返回“”
if(strs.length == 0) return "";
//默认第一个字符串strs[0]为最长公共前缀
String result = strs[0];
for(int i = 1; i < strs.length; i++){
int j = 0;
while(j < strs[i].length() && j < result.length()){
//计算新的最长公共前缀
if(result.charAt(j) == strs[i].charAt(j)){
j ++;
}else {
break;
}
}
//获取新最长公共前缀
result = result.substring(0, j);
//最长公共前缀为空时,直接返回“”
if(result.length() == 0) return result;
}
return result;
}
391

被折叠的 条评论
为什么被折叠?



