编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
思路:纵向对比
将各个字符串中的字符从第一个字符进行比较,
对于第i个字符,如果都包含,继续向后搜索
否则,返回前0~i-1个字符。
class Solution {
public String longestCommonPrefix(String[] strs) { //strs字符串数组
//纵向比较法
if(strs == null || strs.length == 0){
return "";
}
int len = strs[0].length(); //比较的字符串的长度按照第一个字符串为标准
int count = strs.length; //参与比较的字符串的数量
for(int i = 0; i < len; i++){
char c = strs[0].charAt(i); //第一个字符串的所有字符
for(int j = 0;j < count; j++){
if(i == strs[j].length() || strs[j].charAt(i) != c){ //不满足所有列上的字符相等
return strs[0].substring(0,i); //则返回相等的字符串,范围(0,i)
}
}
}
return strs[0];
}
}