iT邦幫忙

2024 iThome 鐵人賽

DAY 14
0
佛心分享-刷題不只是刷題

只是單純想刷題XD系列 第 14

只是單純想刷題XD Day14

  • 分享至 

  • xImage
  •  

今天來解第14題

題目

https://ithelp.ithome.com.tw/upload/images/20240926/20160320pCHWCFnVLF.jpg

題目翻譯

一個陣列中有許多個字串,寫一個function找出這些字串最長的共同字首。

解題思路

  1. 檢查空輸入

    • 如果輸入的字串陣列 strs 為空,直接返回空字串。
  2. 初始化最長前綴

    • 將最長前綴初始化為第一個字串 strs[0]
  3. 逐一檢查每個字串

    • 從第二個字串開始,逐個與當前的最長前綴進行比較。
    • 使用 indexOf() 函數檢查當前字串是否以目前的最長前綴開頭:
      • 如果當前字串不是以最長前綴開頭,則逐漸減少最長前綴的長度(從尾部移除一個字符),直到當前字串以最長前綴開頭為止。
      • 如果最長前綴被縮短到空字串,則直接返回空字串,表示沒有公共前綴。
  4. 返回結果

    • 當遍歷所有字串並調整最長前綴後,返回最終的最長前綴。

code

var longestCommonPrefix = function (strs) {
  if (!strs.length) return '';

  let prefix = strs[0];

  for (let i = 1; i < strs.length; i++) {
    while (strs[i].indexOf(prefix) !== 0) {
      prefix = prefix.slice(0, -1);
      if (prefix === '') return '';
    }
  }

  return prefix;
};

上一篇
只是單純想刷題XD Day13
下一篇
只是單純想刷題XD Day15
系列文
只是單純想刷題XD30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言