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);
}
}
鉴于水平有限,算法的实现也不一定是最优的,如有什么错误,还望批评指正