leetcode14:Longest Common Prefix

leetcode14:Longest Common Prefix

Write a function to find the longest common prefix string amongst an array of strings.

循環的判斷數組中每一個字符串在相同的下標是否有相同的值(當然還要加入相應的判斷匹配終止的條件),這樣遍可以找出最長的公共前綴

package leetcode;

public class leet14 {
	
	public String longestCommonPrefix(String[] strs){
		String str ="";//存儲最長公共前綴
		int j = 0;
		int i;
		if(strs.length == 0){//判斷字符串數組是否爲空
			return "";
		}
		
		while(true){//外層循環
			//以第一個字符串爲基準
			if(j >= strs[0].length())//判斷第一個字符串是否達到最長,則匹配結束,返回
				return str;
			for(i = 1;i < strs.length;i++){//對字符串數組中的每一個字符串的相應的位置下標進行比較
				if(j >= strs[i].length()){//判斷當前字符串是否達到最長,則匹配結束,返回
					return str;
				}
				if(strs[i].charAt(j) != strs[0].charAt(j)){//判斷當前字符串的第j位是否與第一個字符串的j位相同,否則返回
					return  str;
				}
			}
			if(i == strs.length)//匹配完數組中最後一個字符串,將相同的元素添加入結果字符串中。
			{
				str = str+strs[0].charAt(j);
			}
				
			j++;//下標加1
		}
	}
	public static void main(String[] args) {
		
		leet14 lee = new leet14();
		String[] strs = {"abcef","abcd","abca","abc"};
		String comPrex = lee.longestCommonPrefix(strs);
		System.out.println(comPrex);
	}

}

鑑於水平有限,算法的實現也不一定是最優的,如有什麼錯誤,還望批評指正

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章