尋找一個字符串數組的最長公共前綴

解答思路:

相當於 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一起交流。
發佈了29 篇原創文章 · 獲贊 2 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章