1. 程式人生 > 其它 >【演算法之LeetCode系列(1)】——字串最長公共字首解法之一

【演算法之LeetCode系列(1)】——字串最長公共字首解法之一

技術標籤:演算法之力扣系列leetcodejavascript

主要思想

逐個比較,先比較兩個字串的最長公共字首,找出他們的最長公共字首,然後再與另外的字串進行比較,直到找到所有串的最長公共字首

話不多說,都在程式碼裡!

var longestCommonPrefix = function(strs) {
    if(strs === null || strs.length === 0) return '';//判斷陣列是否空
    let temp = strs[0];//將陣列的第一個字串給temp
    for(let i = 1;i < strs.length; i ++){
        let j = 0;//在這裡定義的原因是在下面這個迴圈結束時j還是初值0,即比較下兩個字串時還是從第一個字元開始的
        for(;j < strs[i].length && j < temp.length; j ++){
            if(temp.charAt(j) !== strs[i].charAt(j))
            break;//從第一個字元開始,判斷兩字串的字元是否都相等
    }
        temp = strs[i].substring(0,j);//上面的if不滿足後跳出if後,此時的j就是剛開始不相等的點
        if(temp === '')return '';//無論哪兩個沒有公共字首,直接返回‘’
    }
    return temp;//返回最長公共字首
};