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
    }
  • 相关阅读:
    kioptrix-1
    4.4 CSRF
    upload-labs 练习笔记
    4.3 XSS
    外国人是怎样读编程书的呢?
    如何快速学习新语言
    Go开发环境配置
    Golang Package I
    MVC模式小结
    Flask基础知识
  • 原文地址:https://www.cnblogs.com/TimLiuDream/p/9998227.html
Copyright © 2011-2022 走看看