Write a function to find the longest common prefix string amongst an array of strings.
分析:给定字符串数组,求这些字符串的最长公共前缀子串。
所以决定采用迭代的做法。先求strs[0]与strs[1]的,然后拿这个结果去求与strs[2]的公共前缀。
/**
* 给定字符串数组,求这些字符串的最长公共前缀子串。
* 所以决定采用迭代的做法。先求strs[0]与strs[1]的,然后拿这个结果去求与strs[2]的公共前缀。
*/
public String longestCommonPrefix(String[] strs) {
int len = strs.length;
/*如果只有一个字符串,则直接返回这个字符串*/
if(len < 1){
return "";
}
String s = strs[0];
for(int i=0;i<len;i++){
s = prefix(s, strs[i]);
}
return s;
}
public static String prefix(String s1, String s2) {
StringBuffer str = new StringBuffer();
char[] ch1 = s1.toCharArray();
char[] ch2 = s2.toCharArray();
int len =Math.min(ch1.length,ch2.length);//i要小于ch1和ch2中较小的长度
for (int i = 0; i < len; i++) {
if (ch1[i] == ch2[i]) {
str.append(ch1[i]);
}else{
break;
}
}
return str.toString();
}