Implement strStr().
Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.
public class Solution { public int strStr(String haystack, String needle) { if (haystack.equals(needle) || needle.equals("")) { return 0; } if (haystack == null || needle== null) { return -1; } int si = 0; int mi = 0; int[] next = getNextArray(needle); while (si < haystack.length() && mi < needle.length()) { if (haystack.charAt(si) == needle.charAt(mi)) { si++; mi++; } else if (next[mi] == -1) { si++; } else { mi = next[mi]; } } return mi == needle.length() ? si - mi : -1; } private int[] getNextArray(String needle) { // TODO Auto-generated method stub if (needle.length() == 1) { return new int[]{-1}; } int[] next = new int[needle.length()]; next[0] = -1; next[1] = 0; int pos = 2; int cn = 0; while (pos < next.length) { if (needle.charAt(pos-1) == needle.charAt(cn)) { next[pos++] = ++cn; } else if (cn > 0) { cn = next[cn]; } else { next[pos++] = 0; } } return next; } }
相关推荐
在编程领域,`strStr()` 函数是一个常见的字符串搜索功能,它用于在一个字符串("大海捞针")中查找另一个字符串("针")的首次出现位置。在给定的标题和描述中,我们看到的任务是实现这个函数,并且特别指明了使用...
c c语言_leetcode 0028_implement_strstr.zip
c语言入门 C语言_leetcode题解之28-implement-strstr.c
js js_leetcode题解之28-implement-strStr().js
字符串查找(Implement strStr())。 首先,我们来看第一个问题——链表的重排。题目要求将给定的单链表重新排列,使其呈现出交错的顺序。例如,原始链表L0→L1→L2→L3→L4应变为L0→L4→L1→L3→L2。实现这一...
【实现 strStr() 知识点详解】 在编程领域,字符串操作是常见且重要的任务之一。LeetCode 的第 28 题“实现 strStr()”是一个经典的字符串搜索问题,要求我们在给定的字符串(haystack)中查找另一个字符串(needle...
ImplementstrStr.java //28. Implement strStr() │ LongestIncreasingSubsequence.java 300.Longest Increasing Subsequence | LongestPalindromicSubstring.java 5. Longest Palindromic Substring │ RansomNote...
* 实现strStr()(Implement strStr()):实现字符串搜索算法。 7. 排序和搜索: * 合并两个排序列表(Merge Two Sorted Lists):合并两个排序列表。 * 搜索插入位置(Search Insert Position):在排序数组中...
* Implement strStr():该题目要求实现字符串查找算法,实现方法使用了Knuth-Morris-Pratt算法。 四、搜索和排序 * Search Insert Position:该题目要求在排序数组中查找元素,实现方法使用了二分查找算法。 * ...
7. **Implement strStr().cpp** - 第28题,实现字符串查找功能,即在一个字符串中查找另一个字符串首次出现的位置。可以使用KMP算法或其他字符串匹配算法来解决。 8. **N-Queens(better,backtracking).cpp** - 另一...
- Implement strStr()(实现 strStr() 函数) - Reverse Words in a String(字符串中的单词翻转) - String to Integer (atoi)(字符串转换整数) - Longest Substring Without Repeating Characters(无重复...
在"ImplementstrStr.java"文件中,可能包含如下示例代码: ```java public class Main { public static void main(String[] args) { String source = "hello world"; String target = "world"; int index = ...
5. Implement strStr():实现strStr()函数,即在文本中查找模式串的出现,可以使用KMP算法。 6. Reverse Words in a String:给定一个字符串,将其单词反转并保持单词内部顺序不变。 7. Reverse Words in a String ...
- **ImplementstrStr()** - 描述:实现字符串查找功能,找到模式字符串在文本字符串中的起始位置。 - 关键技术:滑动窗口或KMP算法实现高效匹配。 - **LongestPalindromicSubstring** - 描述:找出给定字符串中的...
- Implement strStr(实现strStr函数) - Two Strings Are Anagrams(两个字符串是否为字母异位词) - Compare Strings(比较字符串) - Group Anagrams(字母异位词分组) - Longest Common Substring(最长...
- 在字符串中查找子串(Implement strStr())则是一个经典的问题,需要实现字符串查找功能。 **数学(Math)** 数学题目主要考察基本的数学知识和逻辑推理能力。 - "反转整数"(Reverse Integer)涉及到了整数的...
5. Implement strStr():实现字符串查找功能,返回子字符串在字符串中的起始索引。 6. Reverse Words in a String:翻转字符串中的单词顺序。 7. Reverse Words in a String II:翻转字符串中的单词顺序,并且整个...