https://leetcode.com/PRoblems/implement-strstr/
算法思想:Implement strStr().Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.
1)定义两个Pointers:i和j,i初始化为指向haystack的的第一个元素;j初始化为指向needle的第一个元素
2)i的范围是从0到两个string的长度的差值,j的范围是0到needle的长度;
3)判断i指向的元素和j指向的元素(这里是j为0指向的,即第一个元素)是否相等,如果不等,i继续向后移动;如果相等,就比较i后面的元素是否和j指向的所有元素是否相等,相等就返回这个i;如果不相等,i继续向后移动
程序代码:public class Solution { public int strStr(String haystack, String needle) { int lenHay = haystack.length(); int lenNee = needle.length(); if (haystack == null || needle == null || lenHay < lenNee) { return -1; } if (needle.isEmpty()) { return 0; } int lenDiff = lenHay - lenNee; for (int i = 0; i <= lenDiff; i++) { if (haystack.charAt(i) == needle.charAt(0)) { int j = 1; while(j < lenNee) { if (haystack.charAt(i+j) != needle.charAt(j)) { break; } j++; } if (j == lenNee) { return i; } } } return -1; }}
新闻热点
疑难解答