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 };
  • 相关阅读:
    《完美应用ubuntu》之全面管理ubuntu软件源
    ubuntu下安装CAJ阅读器
    re正则表达式方法
    Xpath做数据解析
    C++异常处理
    异常处理
    指针与引用
    总结:开放透明的环境对于大数据团队的重要性
    java控制流
    3. 最小生成树
  • 原文地址:https://www.cnblogs.com/rookiez/p/13200564.html
Copyright © 2011-2022 走看看