题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2087

这题水的不要不要的,各种数据都能过,醉醉的

写他的目的是在KMP专题上随时都要充实自己,又长知识了。

kmp算法完成的任务是:给定两个字符串O和f,长度分别为n和m,判断f是否在O中出现,如果出现则返回出现的位置。

常规方法是遍历a的每一个位置,然后从该位置开始和b进行匹配,但是这种方法的

复杂度是O(nm)。kmp算法通过一个O(m)的预处理,使匹配的复杂度降为O(n+m)。

#include <cstdio>
#include <cstring>
#include <iostream>
#include <cmath>
#include<vector>
#include<queue>
#include<algorithm>using namespace std;
typedef long long LL;const int maxn=1005;
const int INF=0x3f3f3f3f;char s1[maxn], s2[maxn];int main()
{while(scanf("%s", s1), strcmp(s1, "#")){scanf("%s", s2);int len1=strlen(s1);int len2=strlen(s2);if(len1<len2){printf("0\n");continue;}int ans=0, f=1;for(int i=0; i<len1; i++){if(s1[i]==s2[0]){for(int j=1; j<len2; j++){i++;if(s1[i]!=s2[j]){f=0;break;}}if(f)ans++;elsef=1;}}printf("%d\n", ans);}return 0;
}

用指针解决

直接调用库函数strstr()。

strstr 语法:

#include <string.h>

char *strstr( const char *str1, const char *str2 );

功能:函数返回一个指针,它指向字符串str2 首次出现于字符串str1中的位置,如果没有找到,返回NULL。

#include <cstdio>
#include <cstring>
#include <iostream>
#include <cmath>
#include<vector>
#include<queue>
#include<algorithm>using namespace std;
typedef long long LL;const int maxn=1005;
const int INF=0x3f3f3f3f;char s1[maxn], s2[maxn];int main()
{while(scanf("%s", s1), strcmp(s1, "#")){scanf("%s", s2);char *p;int len=strlen(s2);int ans=0;for(p=s1; p=strstr(p, s2); ans++, p+=len);printf("%d\n", ans);}return 0;
}

转载于:https://www.cnblogs.com/w-y-1/p/5781972.html

hdu---2087---剪花布条相关推荐

  1. HDU 2087 剪花布条 KMP入门

    Problem Description 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条.计算一下能从花布条中尽可能剪出几块小饰条来呢? Input 输入 ...

  2. hdu 2087 剪花布条

    http://acm.hdu.edu.cn/showproblem.php?pid=2087 水题,注意细节就可以了. 代码如下: #include<iostream> #include& ...

  3. HDU 2087剪花布条 KMP

    KMP算法入门题  哥第一次写KMP惭愧啊,惭愧getnext写得蛋痛,后面的KMP部分更蛋痛.改了N久 #include<stdio.h> #include<string.h> ...

  4. HDUOJ 2087 剪花布条

    题目链接 Problem Description 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? Inp ...

  5. 剪花布条(KMP入门)

    剪花布条 HDU - 2087 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?  Input输入中含有一 ...

  6. 【hdu 2087】剪花布条

    今天去刷了一下前几届学长大一时的周赛题,主要收获是学了点string类的基本用法. 题目链接:传送门 剪花布条 Problem Description 一块花布条,里面有些图案,另有一块直接可用的小饰 ...

  7. HDU2087 剪花布条【KMP】

    剪花布条 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submissi ...

  8. 2016 UESTC Training for Search Algorithm String I - 谭爷剪花布条 KMP

    I - 谭爷剪花布条 Time Limit: 3000/100MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit ...

  9. 剪花布条(HDU 2087)

    [kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher C - 剪花布条 题目: Description 一块花布条,里面有些图案,另有一块直接可用的小饰条, ...

  10. HDU2087剪花布条

    Problem Description 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? Input 输入 ...

最新文章

  1. 原创“.NET研究”企业级控件库之图片浏览控件
  2. Mysql学习总结(5)——MySql常用函数大全讲解
  3. TEMPO研究第一年影像学数据: 骨侵蚀修复几乎只出现在无关节肿胀或肿胀改善组...
  4. [20170410]快速找回触发器内容.txt
  5. Git的使用——解决中文乱码
  6. 合成人声、人脸替换等深度合成信息内容须进行显著标识
  7. React.js 官网入门教程 分离文件 操作无法正常显示HelloWord
  8. php 嵌入手机百度地图,C# 程序中嵌入百度地图
  9. java线程池_Java 线程池 8 大拒绝策略,面试必问!
  10. chkconfig命令详解
  11. Unity3d C#使用Highlighting System 5.0高光插件的详细使用教学和脚本动态操作
  12. 蓝桥杯 C语言 试题 历届试题 网络寻路
  13. 电脑快捷启动工具 Lily5.1
  14. 为啥俺要写博客--凭什么?
  15. 小乌龟代码提交Gitee
  16. 数字电视专业术语--DTV名词扫盲
  17. 搜狐畅言评论系统使用
  18. 2022年 合肥市信息学竞赛市赛 小学组
  19. 易语言多线程批量登录实现一键选中取消选择框账号
  20. [转]基于SSD的数据库性能优化

热门文章

  1. 高等数学-第一章 函数 极限 连续
  2. ES(Elasticsearch)解除索引只读限制
  3. Java 枚举(enum)剖析
  4. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-10.Springboot2.x用户登录拦截器开发实战...
  5. 阶段3 2.Spring_10.Spring中事务控制_6 spring基于XML的声明式事务控制-配置步骤
  6. 利用VS自带发布功能实现web项目快速部署
  7. UWP开发学习笔记3
  8. tensorflow 变量共享
  9. 关于springMVC的日志管理
  10. JS学习之表格的排序