编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串
""
。示例 1:
输入: ["flower","flow","flight"] 输出: "fl"示例 2:
输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。说明:
所有输入只包含小写字母
a-z
。
class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs == null||strs.length == 0) {return "";}
//判空
if(strs.length < 2) {return strs[0];}
char[] common = strs[0].toCharArray();
//公共前缀长度
int len = common.length;
for(int i = 1;i < strs.length;i++) {
//可能遇到空字符串
if("".equals(strs[i])) {
return "";
}
if(strs[i].length() < len) {
len = strs[i].length();
}
char[] tmp = strs[i].toCharArray();
for(int j = 0;j < len;j++) {
if(tmp[j] != common[j]) {
len = j;
break;
}
}
}
if(len > 0) {
return new String(common,0,len);
}
return "";
}
}