# 找出相同的算法 最長公共前綴 https://www.youtube.com/watch?v=gJOgI8TpSgc ## 水平比較 apple apply ape at 這樣第一根第二筆 app在跟第三個ape比 ap在跟at比 所以是a 但這樣有一個問題 如果第一個跟二相同太多會浪費效率 也會跑多次的for ## 垂直方法 這是一次比較全部的內容   把第一個字跟全部比較 怎麼比較呢 打第一個字 ``` var a = function(strs){ let prefix = ''; // returen 記得要retunre prefix if(strs.length === 0) return prefix for(let i=0; i<strs[0].length; i++){ const currentChar = strs[0][i]; for(let j=0; j<strs.length; j++){ // returen 記得要retunre prefix if(strs[j][i] !== currentChar) return prefix } //要prefix + curr 這樣才會app 不然就ppa顛倒了 //這寫在迴圈外面 這邊做比對 上面for是把不合適的剃掉 //如果你在上面兩層for加 會變成兩倍 prefix = prefix + currentChar } return prefix; } const data = [ 'apple', 'apply', 'appt' ]; const c = a(data); console.log(c); ``` ###### tags: `演算法`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up