Difficulty: Easy
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:
| 12
 
 | **Input:** ["flower","flow","flight"]**Output:** "fl"
 
 | 
Example 2:
| 12
 3
 
 | **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.
Solution
Language: Java
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 
 | class Solution {public String longestCommonPrefix(String[] strs) {
 if (strs == null || strs.length == 0)
 return "";
 int minLen = Integer.MAX_VALUE;
 for (String str : strs)
 minLen = Math.min(minLen, str.length());
 int low = 1;
 int high = minLen;
 while (low <= high) {
 int middle = (low + high) / 2;
 if (isCommonPrefix(strs, middle))
 low = middle + 1;
 else
 high = middle - 1;
 }
 return strs[0].substring(0, (low + high) / 2);
 }
 
 private boolean isCommonPrefix(String[] strs, int len){
 String str1 = strs[0].substring(0,len);
 for (int i = 1; i < strs.length; i++)
 if (!strs[i].startsWith(str1))
 return false;
 return true;
 }
 }
 
 | 
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 
 | class Solution {public String longestCommonPrefix(String[] strs) {
 if (strs == null || strs.length == 0) {
 return "";
 }
 for (int i = 0; i < strs[0].length(); i++) {
 char c = strs[0].charAt(i);
 for (int j = 1; j < strs.length; j++) {
 if (i >= strs[j].length() || strs[j].charAt(i) != c) {
 return strs[0].substring(0, i);
 }
 }
 }
 return strs[0];
 }
 }
 
 |