• 实现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 }
    一回生,二回熟
  • 相关阅读:
    html5 悬浮提示框
    ajax 接收json
    ajax 发送参数
    jquery无刷新请求ajax
    jQuery 发送 ajax json 请求
    html5 三级联动菜单
    iframe 用法
    html5 复制文字
    bootstrap表单按回车会自动刷新页面的问题
    jquery版本不兼容问题
  • 原文地址:https://www.cnblogs.com/zzytxl/p/12508304.html
Copyright © 2020-2023  润新知