iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 5
0
自我挑戰組

用LeetCode來訓練大腦的邏輯思維系列 第 5

LeetCode 14. Longest Common Prefix

  • 分享至 

  • xImage
  •  

題目

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: ""

解題步驟

以第一個元素為基準:

let strs1 = strs[0];

由第二個元素開始,若所有元素相同位置的字元都一樣的話,就表示符合共用前綴詞的條件。

需使用迴圈完成,長度以第一個元素為主。

比較的方法採用array API every() 方法,每個元素都要符合條件,整個運算是才會回傳true

for (let i = 0; i < len; i++) {
    if (strs.every(elmt => strs1[i] === elmt[i])) {
      prefix += strs1[i];
    } else {
      break;
    }
}

Solution

var longestCommonPrefix = function (strs) {
  let prefix = '';
  let strs1 = strs[0];
  let len = strs1 ? strs1.length : 0;
  for (let i = 0; i < len; i++) {
    if (strs.every(elmt => strs1[i] === elmt[i])) {
      prefix += strs1[i];
    } else {
      break;
    }
  }
  return prefix;
};

上一篇
LeetCode 13. Roman to Integer
下一篇
LeetCode 15. 3Sum
系列文
用LeetCode來訓練大腦的邏輯思維30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言