最长公共前缀

问题陈述

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""

示例:

1
2
输入: ["flower","flow","flight"]
输出: "fl"

问题解决

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs==null||strs.length==0) return "";//判断字符数组是否为空
String prefix=strs[0];//假设第一个字符串就是最长前缀
for(int i=1;i<strs.length;i++){
while(strs[i].indexOf(prefix)!=0){//如果不存在,即起始索引不等于0
prefix=prefix.substring(0,prefix.length()-1);//不断去除prefix的尾部字符继续比较
if(prefix.isEmpty()) return "";//无公共前缀,返回""。
}
}
return prefix;

}
}
//str.indexOf(String s)函数。判断str字符串是否有匹配的子串s,返回子串s的起始索引。