题意:对一组字符串,找出这组字符串的最长共同前缀。
思路:首先,找出这组字符串中最短的字符串,最长前缀肯定是小于最短字符串长度的,因此,对每个字符串,从位置0开始,比较是否相同。
代码:
public class LongestCommonPrefix {
public int MinLength(String[] strs){
int min = strs[0].length();
for(int i = 1 ; i < strs.length ; i++){
if(strs[i].length() < min ){
min = strs[i].length();
}
}
return min;
}
public String LongestPrefix(String[] Strs){
if(Strs == null || Strs.length == 0){
return null;
}
int Min = MinLength(Strs);
StringBuilder sb = new StringBuilder();
int index = 0;
while(index < Min){
for(int i = 1 ; i < Strs.length ; i++){
if(Strs[i].charAt(index) != Strs[0].charAt(index)){
return sb.toString();
}
sb.append(Strs[0].charAt(index));
index++;
}
}
return sb.toString();
}