28. 实现 strStr()
实现 strStr() 函数。
给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。
示例 1:
输入: haystack = "hello", needle = "ll" 输出: 2
示例 2:
输入: haystack = "aaaaa", needle = "bba" 输出: -1
class Solution { public int strStr(String haystack, String needle) { //暴力 int hL = haystack.length(),nL = needle.length(); if(nL == 0) return 0; int ph = 0; while(ph < hL - nL + 1){ while(ph < hL - nL + 1 && haystack.charAt(ph) != needle.charAt(0)) ph++; int pn = 0,nLen = 0; while(pn < nL && ph < hL && haystack.charAt(ph) == needle.charAt(pn)){ pn++; ph++; nLen++; } if(nLen == nL) return ph - nLen; ph = ph - nLen + 1; } return -1; } }
一回生,二回熟