14. Longest Common Prefix

  1. Longest Common Prefix
    Write a function to find the longest common prefix string amongst an array of strings.

方法:從開(kāi)始依次比較

思路:
選一個(gè)one_str作為參照,對(duì)其他strs都按位與one_str比較,直到出界或不相等
Time Complexity: O(n*min(k)) n個(gè)str,長(zhǎng)度為k
Space Complexity: O(1)

Solution Code:

class Solution {
    public String longestCommonPrefix(String[] strs) {
        if(strs == null || strs.length == 0) return "";
        
        String one_str = strs[0];    // as reference
        int max_length = 0;
        // compare all strs with one_str char by char
        for(int pos = 0; pos < one_str.length(); pos++) {
            for(int i = 1; i < strs.length; i++) {
                if(pos >= strs[i].length() || strs[i].charAt(pos) != one_str.charAt(pos)) 
                {
                    return one_str.substring(0, max_length);
                }
            }
            max_length++;
        }
        return one_str.substring(0, max_length);
    }
}
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;
    }
}
class Solution {
    public String longestCommonPrefix(String[] strs) {
        if(strs == null || strs.length == 0 || strs[0].length() == 0) return "";
        int i = 0;
        while(true) {
            if(i >= strs[0].length()) return strs[0].substring(0, i);
            Character c = strs[0].charAt(i); 
            for(String str: strs) {
                if(i >= str.length() || str.charAt(i) != c) {
                    return strs[0].substring(0, i);
                }
            }
            i++;
        }
        
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容