LeetCode 14. Longest Common Prefix
題目
Write a function to find the longest common prefix string amongst an array of strings.
翻譯
一個陣列中有許多個字串,寫一個function找出這些字串最長的共同字首。
範例:
['abcd','abccc','abdec'] --> 共同字首為 'ab' 。
想法
- 比對兩個字串, 從頭開始取, 相同部分為共同字首
- 後面字串跟前面比即可, i = 1 開始
詳細參閱
https://skyyen999.gitbooks.io/-leetcode-with-javascript/content/questions/14md.html
https://discuss.leetcode.com/topic/86037/c-clear-6ms-solution
Code
var longestCommonPrefix = function(strs) {
    if (!strs || strs.length ===0) {
        return '';
    }
    //表示目前發現的共同字首, 一開始取第一個字串
    var same_str = strs[0];
    //只需要比對跟same_str 共同字串有多少就好
    for (let i = 1; i < strs.length; i++) {
        var str = strs[i];
        // j=0 移出迴圈宣告, 避免有完全不符合
        var j = 0;
        for (; j < same_str.length; j++) {
            if (same_str[j] != str.charAt(j)) {
                break;
            }
        }
        //看same_str 與目前字串str前幾位相同, 作為新的same_str
        same_str = same_str.slice(0, j);
    }
    return same_str;
};
Run
Run Time
122ms
留言
張貼留言