编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
方法:
以第一个单词为基准,逐位判断以下的单词是否与其相匹配,以下的全都匹配再判断下一位,一旦有一个不匹配或长度不足停止。
class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs.length == 0)
return "";
int len = strs[0].length();
int index = -1;
int j;
for(int i = 0; i < len; i++){
for(j = 1; j < strs.length; j++){
if(i + 1 > strs[j].length() || !(strs[0].charAt(i) == strs[j].charAt(i)))
break;
}
if(j == strs.length)
index = i;
else
break;
}
System.out.println(index);
return index != -1 ? strs[0].substring(0, index + 1) : "";
}
}