zoukankan      html  css  js  c++  java
  • LeetCode28:实现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() 定义相符。

    采用双指针,分别指向两个string,进行匹配。

     1 class Solution {
     2 public:
     3     int strStr(string haystack, string needle) {
     4         if(needle.size()==0) return 0;
     5         int n1=haystack.size(),n2=needle.size();
     6         int j=0,len=0,i=0;
     7         while(i<=n1-n2){
     8             while(haystack[i]!=needle[0] && i<=n1-n2)
     9                 i++;
    10             j=0;
    11             len=0;
    12             while(i<n1 && j<n2 && haystack[i]==needle[j]){
    13                 i++;
    14                 j++;
    15                 len++;
    16             }
    17 
    18             if(len==n2)
    19                 return i-len;
    20             i=i-len+1;
    21         }
    22     return -1;
    23     }
    24 };
  • 相关阅读:
    vue 定义全局函数和变量
    大学感受
    NOIP2018 游记
    NOI2018 游记
    THUSC 2018 游记
    APIO2018 游记
    SXOI2018游记
    poorpool 的 考场 NOI Linux 配置
    关于 poorpool
    NOIP2017 游记
  • 原文地址:https://www.cnblogs.com/rookiez/p/13200564.html
Copyright © 2011-2022 走看看