一、题目内容
二、题解
解法1:
思路
代码
public class Solution {/**** @param strs string字符串一维数组* @return string字符串*/public String longestCommonPrefix (String[] strs) {// write code hereif (strs == null || strs.length == 0) {return "";}int minLength = Integer.MAX_VALUE;for (String str : strs) {// 获取最短字符串的长度minLength = Math.min(minLength, str.length());}// 二分查找int low = 0, high = minLength;while (low < high) {// 分别对前后两部分进行判断int mid = (high - low + 1) / 2 + low;if (isCommonPrefix(strs, mid)) {low = mid;} else {high = mid - 1;}}return strs[0].substring(0, low);}// 判断长度为 length 的字符是否是strs的共同字串public boolean isCommonPrefix(String[] strs, int length) {String str0 = strs[0].substring(0, length);int count = strs.length;for (int i = 1; i < count; i++) {String str = strs[i];for (int j = 0; j < length; j++) {if (str0.charAt(j) != str.charAt(j)) {return false;}}}return true;}}
