Write a function to find the longest common prefix string among an array of strings.
Example:
"bc" is Longest Common Prefix among an Array of String [ "bc", "bcaddf", "bca"]
Key to Solve:
Idea: Use to principle Length of longestCommonPrefix always less than
length of shortest String in the set of String arrays
1. Set 1st Strs[0] as pivot,
2. Compare character from 1st Strs[0] with following Strs one by one
3. Two cases must be check for each String by order otherwise will throw out of bound error
(1)index of Strs[0]>=others Str's length or
(2)any mismatch is found between two Strings
return Common String
4. else continue build Common String
public class Solution {
public String longestCommonPrefix(String[] strs) {
if (strs.length==0) return "";
int n=strs.length;
int len=strs[0].length();
StringBuilder commonStr=new StringBuilder();
for(int j=0;j<len;j++){
char c=strs[0].charAt(j);
for(int i=1;i<n;i++){ //start from second String in the array
if(j>=strs[i].length() || c!=strs[i].charAt(j)){
return commonStr.toString();
}
}
commonStr.append(c);
}
return commonStr.toString();
}
}