题目要求:获得一个字符串数组中最长的相同字符串前缀
tags:String
思路:
1.首先假设字符串数组中最长的字符串前缀为数组的第一个字符串,
2.再将改字符串前缀与字符串数组中第二个字符串比较,直到找出最长的字符串前缀,
3.循环2直到比完字符串数组中的所有值。
优化:
可以将字符串数组先进行排序,将字符串长度最短的排在前面,这样第一次假设的字符串前缀的平均长度要比排序前的短,可以少进行几次比较。
public String longestCommonPrefix(String[] strs) {
if(strs.length==0){
return "";
}
Arrays.sort(strs);
String pre = strs[0];
for(int i=0;i<strs.length;i++){
while(strs[i].indexOf(pre)!=0){
pre = pre.substring(0, pre.length()-1);
}
if(pre==""){
break;
}
}
return pre;
}