class Solution {
public String longestCommonPrefix(String[] strs) {
//res设置为开始比较的首个字符串
String res = strs[0];
for(int i=0;i<strs.length-1;i++) {
//开始循环,这里length-1是为了后面i+1不报错。
//从头开始循环,两两比较,s赋值为每次比较中的最长字符串
String s = compare(res,strs[i+1]);
res = s;
}
return res;
}
//这个函数的主要目的是找出两个字符串的最长前缀。
public static String compare(String s1, String s2) {
int len = Math.min(s1.length(), s2.length()); //首先取两个字符串中的最短长度
for (int i=0;i<len;i++) {
if(s1.charAt(i)!=s2.charAt(i)) {
return s1.substring(0,i); //从第一个字符开始匹配,如果不匹配,直接返回s1子字符串(0,i)
}
}
return s1.substring(0,len); //如果循环完成还没有退出,那么就返回字符串s1或者s2的(0,len)的子字符串
}
}
运行成功通过,击败百分百用户。