zoukankan      html  css  js  c++  java
  • leetcode 实现strStr()

    实现strStr()函数。

    给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。

    示例 1:

    输入: haystack = "hello", needle = "ll"
    输出: 2

    示例 2:

    输入: haystack = "aaaaa", needle = "bba"
    输出: -1

    说明:

    当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。

    对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与C语言的 strstr() 以及 Java的indexOf()定义相符。

    /**
     * @param {string} haystack
     * @param {string} needle
     * @return {number}
     */
    var strStr = function (haystack, needle) {
        if (!needle || haystack === needle) {
            return 0;
        }
        let h_len=haystack.length;
        let n_len=needle.length;
        for (let i = 0; i <= h_len - n_len; i++) {
            let j = 0;
            for (; j < n_len; j++) {
                if (haystack[i + j] !== needle[j]) {
                    break;
                }
            }
            if (j === n_len) {
                return i;
            }
        }
        return -1;
    };
    

    indexOf就不用思考了,看了别人的解答又想了好久才想出这种写法

  • 相关阅读:
    java算法--循环队列
    java算法--普通队列
    java算法--稀疏数组
    HelloWorld
    css
    自定义事件并且主动触发
    数组字符串操作
    进阶路上有你我-相互相持篇之ES6里箭头函数里的this指向问题
    关于一道面试题
    异步函数回调
  • 原文地址:https://www.cnblogs.com/sbzy/p/9393150.html
Copyright © 2011-2022 走看看