【Leetcode-14 】Longest Common Prefix
Write a function to find the longest common prefix string amongst an array of strings.
If there is no common prefix, return an empty string “”.
Example 1:
Input: [“flower”,“flow”,“flight”]
Output: “fl”
Example 2:
Input: [“dog”,“racecar”,“car”]
Output: “”
Explanation: There is no common prefix among the input strings.
Note:
All given inputs are in lowercase letters a-z.
public class Solution14 {
public static String longestCommonPrefix(String[] strs) {
int len=strs.length;
if(len==0) {
return "";
}
if(len==1) {
return strs[0];
}
strs[1]=TwolongestCommonPrefix(strs[0],strs[1]);
for(int i=1;i<strs.length;i++) {
if(i+1<strs.length) {
String s=TwolongestCommonPrefix(strs[i],strs[i+1]);
if(s=="") {
return "";
}else {
strs[i+1]=s;
}
}
}
return strs[len-1];
}
//两个字符串的公共前缀
private static String TwolongestCommonPrefix(String s1,String s2) {
int len1=s1.length();
int len2=s2.length();
int i=0;
for(;i<len1&&i<len2;) {
if(s1.charAt(i)==s2.charAt(i)) {
i++;
}else {
break;
}
}
return s1.substring(0,i);
}
public static void main(String[] args) {
String[] s= {"flower","flow","flight",""};
String s1=Solution14.longestCommonPrefix(s);
System.out.print(s1);
}
}