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

    实现 strStr() 函数。

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

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

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

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

    首先分析题意:
    1. 当needle字符串为空的时候,返回0
    2. 当两个字符串是一样的时候,返回1

    那我们就可以用整段比较的方法去做

    func strStr(haystack string, needle string) int {
        //特殊情况,当needle是空字符串,那就返回0
        if len(needle) == 0 {
            return 0
        }
        //整段判断是否相同
        //判断的时候需要注意数组越界,所以小于haystack长度减去needle的长度
        //判断的时候也需要注意两个长度是一样的
        nlen := len(needle)
        for i := 0; i <= len(haystack)-nlen; i++ {
            if haystack[i:i+nlen] == needle {
                return i
            }
        }
        return -1
    }
  • 相关阅读:
    vue-cli3初尝试之路径别名配置
    nodejs之koa-router与koa-body搭配使用
    nodejs之crypto加密算法
    nodejs之glob与globby
    vuecli3初尝试(转载)
    python之线程同步
    python之多线程通信
    python之通过thread来实现多进程
    U盘启动盘安装Mac OS
    Windows环境下制作MACOS X U盘安装盘
  • 原文地址:https://www.cnblogs.com/TimLiuDream/p/9998227.html
Copyright © 2011-2022 走看看