【LeetCode练习】[简单]14. 最长公共前缀
14. 最长公共前缀
题目来源
算法思想:字符串
题目:
java代码
class Solution {
public String longestCommonPrefix(String[] strs) {
String pre = "";//前缀
if(strs.length == 0){
//如果长度是0直接返回空字符串
return "";
}
if (strs.length == 1){
//长度是1,直接返回字符串
return strs[0];
}
pre = help(strs[0],strs[1]);//寻找前两个字符串的最长公共子串
if(pre == null){
//如果前缀是空串,表示没有字符串,直接返回""
return "";
}
for (int i = 2; i < strs.length; i++) {
//逐次比较最长前缀
pre = help(pre,strs[i]);
if(pre == null){
return "";
}
}
return pre;
}
private String help(String s1,String s2){
//比较两个字符串的前缀
int len = Math.min(s1.length(),s2.length());//获取两个字符串的最小长度
for (int i = len; i > 0; i--) {
//从大到小开始尝试前缀的长度
String t = s1.substring(0,i);
if (t.equals(s2.substring(0,i))){
//如果相同,则t为最大前缀
return t;
}
}
return null;//没有前缀,返回空
}
}