題目要求:獲得一個字符串數組中最長的相同字符串前綴
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;
}