问题描述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
class Solution {
public String longestCommonPrefix(String[] strs) {
if(null == strs || strs.length == 0){
return "";
}
if(strs.length == 1){
return strs[0];
}
String min = strs[0];
for(int i = 0; i < strs.length; i++){
if(min.length() > strs[i].length()){
min = strs[i];
}
}
for(int i = 0; i < min.length(); i++){
for(int j = 0; j < strs.length; j ++){
if(min.charAt(i) != strs[j].charAt(i)){
return min.substring(0, i);
}
}
}
return min;
}
}
本文介绍了一个算法问题:如何在字符串数组中找到最长的公共前缀。通过实例演示了当输入为[flowerflowflight]时,输出为fl;而当输入为[dogracecarcar]时,由于没有公共前缀,输出为空字符串。文章提供了一段Java代码实现,首先检查输入的有效性,然后确定最短字符串作为比较基准,最后逐字符对比所有字符串,直到发现不匹配为止。

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



