编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: [“flower”,“flow”,“flight”] 输出: “fl” 示例 2:
输入: [“dog”,“racecar”,“car”] 输出: “” 解释: 输入不存在公共前缀。 说明:
所有输入只包含小写字母 a-z 。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-common-prefix
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
个人想到的思路是以第一个字符串为基准,与之后的相比较,再以最短的字符串为准,从前往后一次比较,找出两者的最长公共前缀,再以此为基准与后面的字符串比较,依次循环知道最后一个字符串为止
public String longestCommonPrefix(String[] strs) {
String res="";
for (int i = 0; i < strs.length; i++) {
if (i==0){
res=strs[i];
}else{
int len = Math.min(res.length(),strs[i].length());
StringBuilder sb = new StringBuilder();
for (int j = 0;j<len;j++){
if (res.charAt(j)!=strs[i].charAt(j)){
break;
}else {
sb.append(res.charAt(j));
}
}
res=sb.toString();
}
}
return res;
}
官方题解中和评论中的大部分思路与此类似,关于分治和二分查找的思路请参照官方题解。
本文介绍了一个用于查找字符串数组中最长公共前缀的算法实现,通过逐字符比较和迭代更新,确保了结果的准确性。算法首先将首个字符串设为基准,然后与后续字符串逐一比较,逐步缩小公共前缀的范围。
498

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



