# 14.Longest Common Prefix <span class="tag" data-diff="easy" /> {%hackmd RN5D4nggQRO8wzNqxuvlNw %} ## 題目 Write a function to find the longest common prefix string amongst an array of strings. If there is no common prefix, return an empty string "". **Example 1:** ``` Input: ["flower","flow","flight"] Output: "fl" ``` **Example 2:** ``` Input: ["dog","racecar","car"] Output: "" Explanation: There is no common prefix among the input strings. ``` **Note:** All given inputs are in lowercase letters a-z. ## 思路 這題不難,順便拿來試試看javascript ES6的解構賦值(Deconstruct assigment),由於不知道`strs`裡面會傳來多少筆string,利用解構賦值可以取出第一筆字串存在ref,並把剩餘的字串傳給res,接著loop過ref字串,同時用array中的every函式判斷rest中的每一個字串是否與ref中的字元相同,若相同則記錄到ans中,若否則可以直接回傳ans。取值完之後,要注意若strs式空陣列,則ref會是`undefine`,這時可直接回傳空字串。 ```javascript let [ref, ...res] = strs, ans = ""; if(!ref) return ""; for(let i in ref.split("")){ if(res.every(x => x[i] == ref[i])) ans += ref[i]; else return ans; } return ans; ```