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!=\0){

  if(*p!=*q){

  打破;

  }否则{

  p;

  q;

  if(*q==\0){

  返回草堆我;

  返回空

  };

  安韦瑟尔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;

  }否则{

  返回空

  };

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: