题目描述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 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
思路:
1.如果是空数组,直接返回空串
2.将数组中的第一个字符串设定为最长公共前缀
3.从第二个字符串开始,从前往后依次和最长公共前缀的每一个字符作比较
4.如果不相等,就截取公共部分
5.以此类推,就能找到最长公共前缀
图解:
代码:
class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs == null){
return "";
}
String longest = strs[0];
for(int i = 1;i < strs.length;i++) {
int j = 0;
for(;j < longest.length() && j < strs[i].length();j++) {
if(longest.charAt(j) != strs[i].charAt(j)) {
break;
}
}
longest = longest.substring(0,j);
}
if(longest.equals("")){
return "";
}
return longest;
}
}