微信公眾號:醉前端關(guān)注可了解更多題目。
Q:
實現(xiàn)?strStr()?函數(shù)。給定一個?haystack 字符串和一個 needle 字符串,在 haystack 字符串中找出 needle 字符串出現(xiàn)的第一個位置 (從0開始)。如果不存在,則返回? -1。
輸入: haystack = "hello", needle = "ll",
輸出: 2
輸入: haystack = "aaaaa", needle = "bba",
輸出: -1
說明:當?needle?是空字符串時,我們應當返回什么值呢?這是一個在面試中很好的問題。對于本題而言,當?needle?是空字符串時我們應當返回 0 。這與C語言的?strstr()?以及 Java的?indexOf()?定義相符。
const strStr = (haystack, needle) => { if (needle === "") return 0; if (haystack === "") return -1; let inc = []; for (let i = 0; i < needle.length; i++) { for (let j = 0; j <= i; j++) { if (needle[j] !== needle[i - j]) { inc[i] = j + 1; break; } if (j === i && needle[j] === needle[i - j]) { inc[i] = j + 1; } } } let i = 0; let l = needle.length; while (i < haystack.length) { for (let j = 0; j < l; j++) { if (needle[j] !== haystack[i + j]) { i += inc[j]; break; } if (j === l - 1 && needle[j] === haystack[i + j]) { return i; } } } return -1;};
聯(lián)系客服