Write a function to find the longest common prefix string amongst an array of strings.
public String longestCommonPrefix(String[] strs) { if (strs.length == 0) return ""; if (strs.length == 1) return strs[0]; StringBuilder sb = new StringBuilder(); int n = Integer.MAX_VALUE; boolean finished = false; for (int i = 0; i < strs.length; ++i) n = Math.min(strs[i].length(), n); for (int i = 0; i < n; ++i) { char c = strs[0].charAt(i); for (int j = 1; j < strs.length; ++j) { if (strs[j].charAt(i) != c) { finished = true; break; } } if (finished) break; sb.append(c); } return sb.toString(); }
思路:先求最短字符串的长度n,然后判断逐一字符判断各个数组前n个是否相等,并存入StringBuilder,不等或到n时返回结果。