查找字符串數組中最長的公共前綴字符串


//我的方法
	public String longestCommonPrefix(String[] strs) {
		//如果字符串數組長度是0,則返回“”,如果數組長度是1,那么直接返回這一條String
        if(strs.length==0){
            return "";
        }else if(strs.length==1){
            return strs[0];
        }
        String s = "";
        //比較strs[0]的從第0位開始,每次取出一個字符比較,若數組中所有這個位的字符都相等,則加入公共字符串s,進行下個循環
        for(int i=0; i<strs[0].length(); i++){
            for(int j=1; j<strs.length; j++){
            	//如果遍歷指針到達某個元素元素末尾或者某個元素該位匹配不想等,則返回s
                if((i>=strs[j].length()) || (strs[0].charAt(i) != strs[j].charAt(i)))
                    return s;
            }
            s = s+strs[0].charAt(i);
        }
        return s;
    }
	
	//leetcode的方法
	public String longestCommonPrefix1(String[] strs) {
	    if(strs == null || strs.length == 0)    return "";
	    String pre = strs[0];
	    int i = 1;
	    while(i < strs.length){
	    	//拿第一個做模板,匹配到數組中第一個元素的最長公共前綴字符串,然后以這個為模板,以此類推匹配下邊所有的元素,最后返回最終模板
	    	//indexOf是檢測子串並返回子串起始位置的函數
	        while(strs[i].indexOf(pre) != 0)
	        	//如果pre不是子串,就去掉pre末尾一位重新比較,直到是子串或者pre長度0時就會跳出本次循環去匹配下一輪外循環
	            pre = pre.substring(0,pre.length()-1);
	        i++;
	    }
	    return pre;
	}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM