解答思路:
相當於 qwert qwertyu 的最長公共前綴是 qwert
本題目的思路是最長公共字符串肯定不會比整個數組中最短的長,頂多相等。
那麼我們假設第一個是公共串,讓他和後面的挨個對比,如果它比後面的短,那麼就逐個字符對比,如果共同的比當前的短則截斷
完整代碼如下所示:
public static String longestCommonPrefix(String[] strs) {
if(strs==null||strs.length==0){
return "";
}
String pre = strs[0];
int len;
for(int i=0;i<strs.length;i++){
//匹配選出來最短的字符串
len = pre.length()>strs[i].length()?strs[i].length():pre.length();
int j;
//追個比較
for(j=0;j<len;j++){
if(pre.charAt(j)!=strs[i].charAt(j)){
break;
}
}
pre= pre.substring(0,j);
}
return pre;
}
public static void main(String[] args) {
String[] s ={};
String a=Test7.longestCommonPrefix(s);
System.out.println(a);
}
如果您有更好的解決思路,請添加QQ羣691761026一起交流。