编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入: ["flower","flow","flight"] 输出: "fl"
示例 2:
输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z
。
思路:寻找最长的公共子串,那么寻找到最小长度的子串,与其他子串逐一比较,如果其他子串都有这个子串,那么返回这个最小字串,如果不含有,那么最小子串就可自减 1 ,直到为 0 ,还是没匹配到的话,就返回为 ""。
class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs.length == 0){
return "";
}
int min = Integer.Max_value;
String minStr = "";
for(int i = 0;i < strs.length; i++){
if(min > strs[i].length()){
min = strs[i].length();
minStr = strs[i];
}
}
for(int i = min;i > 0;i--){
String temp = minStr.subString(0,i);
int j;
for(j = 0;j < strs.length();j++){
if(strs[j].subString(0,i).equals(temp)){
continue;
}else{
break;
}
}
if(j == strs.length){
return temp;
}
}
return "";
}
}