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);
}
}
鑑於水平有限,算法的實現也不一定是最優的,如有什麼錯誤,還望批評指正