iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 9
0
自我挑戰組

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

LeetCode 28. Implement strStr()

  • 分享至 

  • xImage
  •  

題目

Implement strStr().
Return the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.

題意

回傳參數needle在參數haystack中,第一次出現的索引值,若沒有找到回傳-1
needle是空字串,回傳0

Example 1:

Input: haystack = "hello", needle = "ll"
Output: 2

Example 2:

Input: haystack = "aaaaa", needle = "bba"
Output: -1

解題思維

先設定邊界條件:
若找不到,回傳-1
needle是空字串,回傳0

依序比對haystack中字元與needle的第一個字元是否符合,若有符合,比對接下來的字元(長度以needle為基準),是否跟needle符合。

Solution

function strStr(haystack = '', needle) {
  if (!!needle) {
    let neeLen = needle.length;
    let searchIdx = haystack.length - neeLen + 1;
    for (let i = 0; i < searchIdx; i++) {
      if (haystack.charAt(i) === needle.charAt(0)) {
        if (haystack.substring(i, i + neeLen) === needle) return i;
      }
    }
    return -1;
  }
  return 0;
}

上一篇
LeetCode 26. Remove Duplicates from Sorted Array
下一篇
LeetCode 35. Search Insert Position
系列文
用LeetCode來訓練大腦的邏輯思維30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言