Write a function to find the longest common prefix string amongst an array of strings.
==========
Analysis:
Nothing special, just implement how we manually count that. Idea of which is to use the first string as the comparator, read characters from it one by one, and compare it with the one in other strings. If this character index exceed the length of the other strings, or character not equal to the one in other string, then return the common string from the 1st position to current position-1.
public class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs.length==0) return "";
int prefix=0;
while(prefix<strs[0].length()){
char tempChar=strs[0].charAt(prefix);
for(int i=1;i<strs.length;i++){// if such character not exist or unequal
if(strs[i].length()<=prefix||strs[i].charAt(prefix)!=tempChar) {
if(prefix == 0) return "";// no common prefix
else return strs[0].substring(0,prefix);
}
}
prefix++;
}
return strs[0];
}
}
Syntax:
Here is the syntax of this method:
public String substring(int beginIndex) or public String substring(int beginIndex, int endIndex)
Parameters:
Here is the detail of parameters:
-
beginIndex -- the begin index, inclusive.
-
endIndex -- the end index,exclusive.