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

     1 public class T28 {
     2     public int strStr(String haystack, String needle) {
     3         if (needle.length() == 0) {
     4             return 0;
     5         }
     6         if (haystack.length() < needle.length()) {
     7             return -1;
     8         }
     9         int pn = 0, N = haystack.length(), L = needle.length();
    10         while (pn < N - L + 1) {
    11             while (pn < N - L + 1 && haystack.charAt(pn) != needle.charAt(0)) {
    12                 pn++;
    13             }
    14             int curLen = 0;
    15             int pl = 0;
    16             while (pl < L && pn < N && haystack.charAt(pn) == needle.charAt(pl)) {
    17                 pl++;
    18                 pn++;
    19                 curLen++;
    20             }
    21             if (curLen == L) {
    22                 return pn - curLen;
    23             }
    24             pn = pn - curLen + 1;
    25 
    26         }
    27 
    28         return -1;
    29     }
    30 }
    一回生,二回熟
  • 相关阅读:
    python编程学习进度七
    python编程学习进度六
    SOA——2020.5.15
    代码大全001/
    Refined Architecture阶段——细化架构
    架构即未来003(摘自网络)
    我对外包公司的小小看法
    架构即未来002
    每日日报
    架构即未来阅读笔记001
  • 原文地址:https://www.cnblogs.com/zzytxl/p/12508304.html
Copyright © 2011-2022 走看看