• hdu2087 剪花布条(kmp)


    思路:纯kmp

    #include <cstdio>
    #include <algorithm>
    #include <iostream>
    #include <vector>
    #include <cstring>
    #define mem(a,b) memset(a,b,sizeof(a))
    
    using namespace std;
    string a[1005];
    int dir[4][2] = {0,1,0,-1,1,0,-1,0};
    int countt,vis[1005][1005],num[1005][1005],ans[1005],sum;
     void getnext(char *p,int next[])
     {
         int len = strlen(p);
         next[0] = -1;
         int k = -1;
         int j = 0;
         while(j < len -1){
            if(k == -1 || p[j] == p[k])
            {
                k++;
                j++;
                if(p[j] != p[k])
                next[j] = k;
                else next[j] = next[k];
            }
            else
                k = next[k];
         }
     }
     int main()
    {
        char s[1005],p[1005];
        int next[1005];
        while(cin >> s){
            if(s[0] == '#') break;
            cin >> p;
            getnext(p,next);
            int len = strlen(p),len2 = strlen(s);
          // for(int i=0; i<=len-1;i++) cout << next[i] << endl;
          int j = 0,ans = 0;
          for(int i = 0;i < len2;)
          {
              if(s[i] == p[j]) {
                i++;
                j++;
              }
              else {
                while(j!=-1 && s[i] != p[j])
                j = next[j];
                i++;
                j++;
              }
              if(j == len)
              {
                  j = 0;
                  ans++;
              }
          }
    
          cout << ans << endl;
        }
        return 0;
    }
  • 相关阅读:
    数据结构与算法--绪论
    Django之模板(T)
    博客园之MD文件代码块添加隐藏/显示按钮
    博客园之背景特效
    博客园之生成侧边目录
    占位先1
    Django之视图(V)
    Django之ORM
    Django框架
    tomcat在centos下启动缓慢,耗时较长
  • 原文地址:https://www.cnblogs.com/LLLAIH/p/11299985.html
Copyright © 2020-2023  润新知