zoukankan      html  css  js  c++  java
  • 花布条错误案例

    一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? Input 输入中含有一些数据,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长。如果遇见#字符,则不再进行工作。

    Output 输出能从花纹布中剪出的最多小饰条个数,如果一块都没有,那就老老实实输出0,每个结果之间应换行。

    Sample Input

    abcde a3

    aaaaaa aa

    #

    Sample Output

    0

    3

    #include<stdio.h>
    #include<string.h>
    char a[1000005],b[10005],next[10005];
    int n,m;
    void getnext()
    {
     int i=0,j=-1,len=m-1;
     next[0]=-1;
     while(i<len)
     {
      if(j==-1||b[i]==b[j])
      {
       i++;
       j++;
       next[i]=j;
      }
      else
      j=next[j];
     }
    }
    int kmp(int n,int m)
    {
     int i=0,j=0,count=0;
     while(i<n&&j<m)
     {
      if(j==-1||a[i]==b[j])
      {
       i++;
       j++;
      }
      else
      j=next[j];
      if(j==m)
      {
       count++;
       j=-1;
      }
      
     }
     if(i==n)
     return count;
     
    }
    int main()
    {
     while(scanf("%d",a)!=EOF)
     {
      if(a[0]=='#'&&strlen(a)==1)
      break;
         else
      {
       scanf("%s",b);
       n=strlen(a);
       m=strlen(b);
       getnext();
       printf("%d ",kmp(n,m));
      }
     } 
     return 0;
    }

  • 相关阅读:
    Django Admin 管理工具
    老男孩培训机构老师的博客
    pycharm版本选择并安装
    Linux命令-自动挂载文件/etc/fstab功能详解
    django urls路由匹配分发
    django templates模板
    Django models模型
    django views视图函数
    JDK与JRE、JVM三者间的关系及JDK的安装部署
    django 第一个项目测试
  • 原文地址:https://www.cnblogs.com/luzhongshan/p/3869790.html
Copyright © 2011-2022 走看看