Write a function to find the longest common prefix string amongst an array of strings.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
   | public class Solution {     public String longestCommonPrefix(String[] strs) {         StringBuffer result = new StringBuffer();         if (strs == null || strs.length < 1) return "";                  Arrays.sort(strs);         char[] first = strs[0].toCharArray();         char[] last = strs[strs.length - 1].toCharArray();                  for (int i = 0; i < first.length && i < last.length; i++){             if (first[i] == last[i]){                 result.append(first[i]);             }else{                 break;             }         }                  return result.toString();     } }
  | 
 
1 2 3 4 5 6 7 8 9 10 11 12 13
   | public class Solution {     public String longestCommonPrefix(String[] strs) {         if(strs == null || strs.length == 0)    return "";         String pre = strs[0];         int i = 1;         while(i < strs.length){             while(strs[i].indexOf(pre) != 0)                 pre = pre.substring(0,pre.length()-1);             i++;         }         return pre;     } }
  | 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
   | public class Solution {     public String longestCommonPrefix(String[] strs) {         StringBuilder sb = new StringBuilder();         if (strs != null && strs.length > 0) {             sb.append(strs[0]);             for (int i = 0; i < strs.length; i++) {                 String cur = strs[i];                 sb.delete(Math.min(cur.length(), sb.length()), sb.length());                 for (int j = 0; j < sb.length(); j++) {                     if (sb.charAt(j) != cur.charAt(j)) {                         sb.delete(j, sb.length());                     }                     if (sb.length() == 0) return "";                 }             }         }         return sb.toString();     } }
  |