O(n/2+)单循环实现leetcode最大公共前缀

64 阅读1分钟
public static String longestCommonPrefix(String[] strs) {
    int i = 0,j = strs.length - 1,k = strs[0].length();
    while(i <= j && k > 0) {
        int length = strs[i].length() < strs[j].length() ? strs[i].length() : strs[j].length();
        k = length < k ? length : k;
        String prefix = strs[0].substring(0, k);
        if(strs[i].startsWith(prefix) && strs[j].startsWith(prefix)) {
            i++;j--;
        } else {
            k--;
        }
    }
    return strs[0].substring(0, k);
}