问题描述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入:strs = ["flower","flow","flight"]
输出:"fl"
示例 2:输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。
提示:
1 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i] 仅由小写英文字母组成来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-common-prefix
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
Java
class Solution {
public String longestCommonPrefix(String[] strs) {
//当数组为空或者数组中没有元素 则没有公共前缀
if(strs == null || strs.length == 0){
return "";
}
//当数组中只有一个元素,那这就是公共前缀
if(strs.length == 1){
return strs[0];
}
int len = strs.length;
//取出第一个字符串和它的长度
char[] first = strs[0].toCharArray();
int maxLen = first.length - 1;
//从第二个字符串开始遍历
for(int i = 1;i < len;i++){
char[] t = strs[i].toCharArray();
maxLen = Math.min(t.length - 1,maxLen);
for(int j = 0;j <= maxLen;j++){
if(t[j] != first[j]){
maxLen = j - 1;
break;
}
}
}
return strs[0].substring(0,maxLen + 1);
}
}