《算法筆記》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
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/82374.shtml
英文地址,請注明出處:http://en.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;玩家控制…