Skip to content

遍历 + 维护公共子串

java
class Solution {
    /**
     * 遍历 + 维护公共子串
     */
    public String longestCommonPrefix(String[] strs) {
        String ans = strs[0];
        for (int i = 1; i < strs.length; i++) {
            String str = strs[i];
            int index = pubSubStringIndex(ans, str);
            // 不存在相同的前缀
            if (index == -1) return "";
            ans = ans.substring(0, index);
        }
        return ans;
    }

    private int pubSubStringIndex(String ori, String dest) {
        if (dest.length() < ori.length()) {
            String tmp = dest;
            dest = ori;
            ori = tmp;
        }
        for (int i = 0; i < ori.length(); i++) {
            if (ori.charAt(i) != dest.charAt(i)) {
                return i;
            }
        }
        return ori.length();
    }
}

Personal Knowledge Base