《算法笔记》12.2小节——字符串专题->KMP算法 问题 C: 剪花布条

题目描述

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

输入

输入中含有一些数据,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长。如果遇见#字符,则不再进行工作。

输出

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

样例输入
abcde a3
aaaaaa  aa
#
样例输出
0
3

 分析:注意这道题的这种样例:aabcbc abc,答案应该输出 2.

可以用 stl 的 find 查找模式串在文本串中第一次出现的位置,然后再用 erase 把这一部分的模式串删除,继续 find,直到找不到模式串为止。

#include<algorithm>
#include <iostream>
#include  <cstdlib>
#include  <cstring>
#include   <string>
#include   <vector>
#include   <cstdio>
#include    <queue>
#include    <stack>
#include    <ctime>
#include    <cmath>
#include      <map>
#include      <set>
#define INF 0x3fffffff
#define db1(x) cout<<#x<<"="<<(x)<<endl
#define db2(x,y) cout<<#x<<"="<<(x)<<", "<<#y<<"="<<(y)<<endl
#define db3(x,y,z) cout<<#x<<"="<<(x)<<", "<<#y<<"="<<(y)<<", "<<#z<<"="<<(z)<<endl
#define db4(x,y,z,r) cout<<#x<<"="<<(x)<<", "<<#y<<"="<<(y)<<", "<<#z<<"="<<(z)<<", "<<#r<<"="<<(r)<<endl
#define db5(x,y,z,r,w) cout<<#x<<"="<<(x)<<", "<<#y<<"="<<(y)<<", "<<#z<<"="<<(z)<<", "<<#r<<"="<<(r)<<", "<<#w<<"="<<(w)<<endl
using namespace std;int main(void)
{#ifdef testfreopen("in.txt","r",stdin);
//    freopen("out.txt","w",stdout);clock_t start=clock();#endif //teststring text,pattern;while(cin>>text,text[0]!='#'){cin>>pattern;int ans=0;while(text.length()>=pattern.length()){if (text.find(pattern)!=string::npos){ans++;text.erase(text.find(pattern),pattern.length());}else break;}printf("%d\n",ans);}#ifdef testclockid_t end=clock();double endtime=(double)(end-start)/CLOCKS_PER_SEC;printf("\n\n\n\n\n");cout<<"Total time:"<<endtime<<"s"<<endl;        //s为单位cout<<"Total time:"<<endtime*1000<<"ms"<<endl;    //ms为单位#endif //testreturn 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/82374.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实现一个前端动态模块组件(Vite+原生JS)

1. 引言 在前面的文章《使用Vite创建一个动态网页的前端项目》中我们实现了一个动态网页。不过这个动态网页的实用价值并不高&#xff0c;在真正实际的项目中我们希望的是能实现一个动态的模块组件。具体来说&#xff0c;就是有一个页面控件同时在多个页面中使用&#xff0c;那…

NTFS0x90属性和0xa0属性和0xb0属性的一一对应关系是index_entry中的index_node中VCN和runlist和bitmap

第一部分&#xff1a; 0: kd> dt _FILE_RECORD_SEGMENT_HEADER 0xc1241400 Ntfs!_FILE_RECORD_SEGMENT_HEADER 0x000 MultiSectorHeader : _MULTI_SECTOR_HEADER 0x008 Lsn : _LARGE_INTEGER 0x80e74aa 0x010 SequenceNumber : 5 0x012 Referen…

PCB 通孔是电容性的,但不一定是电容器

哼&#xff1f;……这是什么意思&#xff1f;…… 多年来&#xff0c;流行的观点是 PCB 通孔本质上是电容性的&#xff0c;因此可以用集总电容器进行建模。虽然当信号的上升时间大于或等于过孔不连续性延迟的 3 倍时&#xff0c;这可能是正确的&#xff0c;但我将向您展示为什…

Flutter 3.32 新特性

2天前&#xff0c;Flutter发布了最新版本3.32&#xff0c;我们来一起看下29到32有哪些变化。 简介 欢迎来到Flutter 3.32&#xff01;此版本包含了旨在加速开发和增强应用程序的功能。准备好在网络上进行热加载&#xff0c;令人惊叹的原生保真Cupertino&#xff0c;以及与Fir…

汉诺塔超级计算机数据区结构和源代码详细设计

### 数据区结构与源代码详细设计 基于"满秩二叉树"存储模型的设计理念&#xff0c;我设计了以下数据区结构和实现方案&#xff1a; #### 1. 满秩二叉树存储模型 **数据结构设计**&#xff1a; python class TreeNode: """二叉树节点结构&#xff0c…

GitHub Copilot 现已支持 AI Coding Agent

VS Code 开始越来越像 Cursor 和 WindSurf 了。 这周,GitHub 发布了一个新的编程代理,直接嵌入到 GitHub 中。当你将 GitHub 问题分配给 Copilot 或在 VS Code 中提示它时,该代理会启动一个由 GitHub Actions 驱动的安全且完全可定制的开发环境。 这一公告来自微软首席执行…

【辰辉创聚生物】FGF信号通路相关蛋白:解码生命调控的关键枢纽

在生命科学的探索旅程中&#xff0c;成纤维细胞生长因子&#xff08;Fibroblast Growth Factor&#xff0c;FGF&#xff09;信号通路犹如精密仪器中的核心齿轮&#xff0c;驱动着众多生命活动的有序进行。FGF 信号通路相关蛋白作为该通路的重要组成部分&#xff0c;其结构与功能…

算法的学习笔记— 构建乘积数组(牛客JZ66)

构建乘积数组 1. 问题背景与描述 1.1 题目来源与链接 本题来源于NowCoder在线编程平台&#xff0c;是剑指Offer系列面试题中的经典问题。题目链接为&#xff1a;NowCoder。该问题在算法面试中出现频率较高&#xff0c;主要考察数组操作和数学思维。 1.2 问题描述与要求 给…

SpringBoot+ELK 搭建日志监控平台

ELK 简介 ELK&#xff08;Elasticsearch, Logstash, Kibana&#xff09;是一个目前主流的开源日志监控平台。由三个主要组件组成的&#xff1a; Elasticsearch&#xff1a; 是一个开源的分布式搜索和分析引擎&#xff0c;可以用于全文检索、结构化检索和分析&#xff0c;它构建…

python36

仔细回顾一下神经网络到目前的内容&#xff0c;没跟上进度的同学补一下进度。 作业&#xff1a;对之前的信贷项目&#xff0c;利用神经网络训练下&#xff0c;尝试用到目前的知识点让代码更加规范和美观。 # 先运行之前预处理好的代码 import pandas as pd import pandas as pd…

SGlang 推理模型优化(PD架构分离)

一、技术背景 随着大型语言模型&#xff08;LLM&#xff09;广泛应用于搜索、内容生成、AI助手等领域&#xff0c;对模型推理服务的并发能力、响应延迟和资源利用效率提出了前所未有的高要求。与模型训练相比&#xff0c;推理是一个持续进行、资源消耗巨大的任务&#xff0c;尤…

模型实战(28)之 yolov5分类模型 训练自己的数据集

模型实战(28)之 yolov5分类模型 训练自己的数据集 本文以手写数字数据集为例总结YOLO分类模型如何训练自己的数据集,关于数据集的预处理可以看这篇:https://blog.csdn.net/yohnyang/article/details/148209978?spm=1001.2014.3001.5502 yolov5曾是在 2021-2023 年十分流行…

医学写作人才管理策略

1. 人才选择:精准定位核心能力 1.1 人才筛选标准 1.1.1 硬性要求 初创生物制药公司医学写作岗位对专业背景要求严格,候选人需具备医学、药学或生物学硕士及以上学历,博士优先。同时,熟悉ICH、FDA/EMA等法规指南是必备条件,且至少有1-3年医学写作经验,或相关领域如临床研…

Axure酒店管理系统原型

酒店管理系统通常被设计为包含多个模块或界面&#xff0c;以支持酒店运营的不同方面和参与者。其中&#xff0c;管理端和商户端是两个核心组成部分&#xff0c;它们各自承担着不同的职责和功能。 软件版本&#xff1a;Axure RP 9 预览地址&#xff1a;https://556i1e.axshare.…

云原生安全之HTTP协议:从基础到实战的安全指南

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念&#xff1a;HTTP协议的核心要素 HTTP&#xff08;HyperText Transfer Protocol&#xff09;是云原生应用中客户端与服务器通信的基础协议&a…

怎样解决photoshop闪退问题

检查系统资源&#xff1a;在启动 Photoshop 之前&#xff0c;打开任务管理器检查 CPU 和内存的使用情况。如果发现资源占用过高&#xff0c;尝试关闭不必要的程序或重启计算机以释放资源。更新 Photoshop 版本&#xff1a;确保 Photoshop 是最新版本。Adobe 经常发布更新以修复…

修复ubuntu server笔记本合盖导致的无线网卡故障

下班回到家发现走时还好的局域网 ubuntu server 24 连不上了&#xff0c;赶紧打开笔记本查看下原因&#xff0c;发现控制台出了一堆看不懂的内容&#xff1a; 根据搜索结果&#xff0c;笔记本合盖导致无线网卡故障可能与电源管理设置和系统休眠策略有关&#xff0c;以下是具体…

CMake指令:find_package()在Qt中的应用

目录 1.简介 2.Qt 核心组件与常用模块 3.配置模式的工作流程 4.完整示例&#xff1a;构建 Qt GUI 应用 5.常见问题与解决方案 6.总结 1.简介 在 CMake 中使用 find_package(Qt) 是集成 Qt 库的核心步骤。Qt 从 5.x 版本开始全面支持 配置模式&#xff08;Config Mode&…

Docker 镜像调试最佳实践

当你已经构建了一个 Docker 镜像&#xff0c;但运行它的容器启动后立即退出&#xff08;通常是因为服务异常或配置错误&#xff09;&#xff0c;你仍然可以通过以下几种方式进入镜像内部进行调试。 ✅ 最佳实践&#xff1a;如何对一个“启动即退出”的镜像进行命令行调试&#…

使用Java制作贪吃蛇小游戏

在这篇文章中&#xff0c;我将带你一步步实现一个经典的贪吃蛇小游戏。我们将使用Java语言和Swing库来构建这个游戏&#xff0c;它包含了贪吃蛇游戏的基本功能&#xff1a;蛇的移动、吃食物、计分以及游戏结束判定。 游戏设计思路 贪吃蛇游戏的基本原理是&#xff1a;玩家控制…