LeetCode Implement strStr()
2016-07-19 13:20
453 查看
Implement strStr().
Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.
Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.
/** * 字符串haystack是否存在子串needle * @param haystack * @param needle * @return */ public int strStr(String haystack, String needle) { if (haystack == null) { return -1; } if (needle == null || needle.length() == 0) { return 0; } if (needle.length() > haystack.length()) { return -1; } char[] source = haystack.toCharArray(); char[] target = needle.toCharArray(); char first = target[0]; int max = source.length - target.length; for (int i = 0; i <= max; i++) { //寻找子串第一个字符 if (source[i] != first) { while (++i <= max && source[i] != first) ; } if (i <= max) { int j = i + 1; int end = i + target.length; for (int k = 1; j < end && source[j] == target[k]; j++,k++); //匹配字符串 if (j == end) { return i; } } } return -1; }
相关文章推荐
- leetcode 179 Largest Number
- leetcode 24 Swap Nodes in Pairs
- leetcode 2 Add Two Numbers 方法1
- leetcode 2 Add Two Numbers 方法2
- leetcode----Longest Substring Without Repeating Characters
- [LeetCode]47 Permutations II
- [LeetCode]65 Valid Number
- [LeetCode]123 Best Time to Buy and Sell Stock III
- [LeetCode] String Reorder Distance Apart
- [LeetCode] Sliding Window Maximum
- [LeetCode] Find the k-th Smallest Element in the Union of Two Sorted Arrays
- [LeetCode] Determine If Two Rectangles Overlap
- [LeetCode] A Distance Maximizing Problem
- leetcode_linearList
- leetcode_linearList02
- 021-Merge Two Sorted Lists(合并两个排好序的单链表);leetcode
- LeetCode[Day 1] Two Sum 题解
- LeetCode[Day 2] Median of Two Sorted Arrays 题解
- LeetCode[Day 3] Longest Substring Without... 题解
- LeetCode [Day 4] Add Two Numbers 题解