思路
- 首先判断传入参数长度是否为0,为0则返回空字符串
- 假设第一个就为最长前缀字符,然后一个个对比
- 遍历所有字符串数组,循环判断如果当前默认的最长前缀不是所遍历字符串数组的前缀,则截取掉设定的最长前缀的最后一位,再进行判断,直至符合遍历对象的前缀
- 最后返回最长前缀
/**
* 最长公共前缀
* @param strs
* @return
*/
public String longestCommonPrefix(String[] strs) {
if(strs.length == 0)return "";
//先设定一个最长公共前缀
String s = strs[0];
for (String str : strs){
//其中startWith是用来判断当前字符串是否为str的前缀 加了!就是不属于该前缀的字符串
while (!str.startsWith(s)){
//["flower","flow","flight"]
if(str.length() == 0)return "";
s = s.substring(0,s.length() - 1);
}
}
return s;
}
注意
1、startsWith()函数是判断当前字符串是否以另外一个给定的字符串的开头,结果返回true或者false
2、加了!则表示当前字符串不是以另外一个给定的字符串的开头