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
.
code1:(本人的丑陋代码)
public String longestCommonPrefix(String[] strs) {
if(strs.length<1)
return "";
if(strs.length==1)
return strs[0];
int count=0;
boolean isContinue=true;
while(isContinue){
for(int i=0;i<strs.length-1;i++){
if((count>=strs[i].length()||count>=strs[i+1].length())||(strs[i].charAt(count)!=strs[i+1].charAt(count))){
isContinue=false;
break;
}
}
count++;
}
return strs[0].substring(0,count-1);
}
code2:(比人家好看又快速的代码)
public String longestCommonPrefix(String[] strs) {
if (strs == null || strs.length == 0) return "";
String pre = strs[0];
for (int i = 1; i < strs.length; i++)
while(strs[i].indexOf(pre) != 0)
pre = pre.substring(0,pre.length()-1);
return pre;
}