LeetCode是什么,leetcodetop_1

  LeetCode是什么,leetcodetop

  实现strStr().

  返回指向第一个出现在干草堆中的针的指针,如果针不是干草堆的一部分,则返回零.

  回答1:0(n * m)

  类别解决方案{

  公共:

  char *strStr(char *haystack,char *needle) {

  //开始在下面键入您的C/C解决方案

  //不要写int main()函数

  int haylen=strlen(干草堆);

  int needlen=strlen(针);

  for(int I=0;I=hay len-needlen;i ){

  char * p=haystack I;

  char *q=针;

  while(*q!=){

  if(*p!=*q){

  打破;

  }否则{

  p;

  q;

  if(*q==){

  返回草堆我;

  返回空

  };

  安韦瑟尔2:KMP

  类别解决方案{

  公共:

  char *strStr(char *haystack,char *needle) {

  //开始在下面键入您的C/C解决方案

  //不要写int main()函数

  int haylen=strlen(干草堆);

  int needlen=strlen(针);

  int * fail=new int[needlen];

  memset(fail,-1,needlen * sizeof(int));//strlen(失败)

  int i,j,k;

  for(I=1;我缝纫;i) {

  for(k=fail[I-1];k=0针[我]!=needle[k 1];k=fail[k]);

  if (needle[k 1]==needle[i])

  fail[I]=k 1;

  I=j=0;

  while(I haylen j needlen)//while(haystack[I]needle[j])

  如果(草堆[我]==针[j])

  我;

  j;

  else if(j==0)I;

  else j=fail[j-1]1;

  删除失败;

  if (needle[j]) {

  返回空

  }否则{

  返回草堆I-j;

  if(j==needlen){

  返回草堆I-j;

  }否则{

  返回空

  };

LeetCode是什么,leetcodetop_1