编写一个函数来查找字符串数组中的最长公共前缀
如果不存在,返回空字符串
例如:
"afilemaker","bfilder","cfilee"
返回 空
"filemaker","filder","filee"
返回 fle
public class Demo3 {
//纵向扫描
public static String longestCommonPrefix1(String [] strs){
if (strs.length == 0 || strs ==null){
return "";
}
int rows = strs.length;//数组有多少行,有几个字符串,就几行
int cols = strs[0].length();//第一个字符串的长度 其作为参考,假设它是公共最长的字符串
//先列后行,是因为我们是纵向比较,有几列是相等的就说明公共字符串的长度就为几
//以列开始,然后逐之比较每行是否相等
for (int i = 0; i < cols; i++) {
//先取第一个字符串的第一个字符
char firstChar = strs[0].charAt(i);
//然后再遍历行,应该从第二行开始,所以j=1
for (int j = 1; j < rows; j++) {
//判断,如果firstChar和str[j].charAt()不相等了,
//就可以返回前面的相等字符了
if (strs[j].charAt(i) != firstChar || i == strs[j].charAt(i)){
return strs[0].substring(0, i);
}
}
}
return strs[0];
}
public static void main(String[] args) {
String[] strs={"afilemaker","bfilder","cfilee"};
String s = longestCommonPrefix1(strs);
System.out.println(s);
}
}



