172.Implement strStr()

Posted chanaichao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了172.Implement strStr()相关的知识,希望对你有一定的参考价值。

题目:

Implement strStr().

Return the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.

返回haystack中第一次出现针的索引,如果needle不是haystack的一部分,则返回-1。

Example 1:

Input: haystack = "hello", needle = "ll"
Output: 2

Example 2:

Input: haystack = "aaaaa", needle = "bba"
Output: -1

Clarification:

What should we return when needle is an empty string? This is a great question to ask during an interview.

当needle是空字符串时我们应该返回什么? 在面试中这是一个很好的问题。

For the purpose of this problem, we will return 0 when needle is an empty string. This is consistent to C‘s strstr() and Java‘s indexOf().

出于此问题的目的,当needle为空字符串时,我们将返回0。 这与C的strstr()和Java的indexOf()一致。

解答:

 1 class Solution {
 2     public int strStr(String haystack, String needle) {
 3         int l1=haystack.length(), l2=needle.length();
 4         if(l2==0)
 5             return 0;
 6         if(l1<l2)
 7             return -1;
 8         for(int i=0;i<=l1-l2;i++){
 9             if(haystack.substring(i,i+l2).equals(needle))
10                 return i;
11         }
12         return -1;
13     }
14 }

详解:

如果needle为空,返回0

如果haystack的长度小于needle,返回-1

如果haystack从i到i+needle的长度的子串=needle,返回i

 

以上是关于172.Implement strStr()的主要内容,如果未能解决你的问题,请参考以下文章

c语言| |strstr函数的源代码以及自我实现

leetcode 28. Implement strStr() 实现strStr()

28. Implement strStr()

LeetCode 28. Implement strStr()

leetcode-----28. 实现 strStr()

模拟实现strstr和strrstr