剪花布条(KPM模板题)

思路:套用KMP模板即可。

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define endl '\n'
int ne[200005];
int main()
{
	IOS
	string a,b;
	while(cin >> a){
		if(a=="#") break;
		cin >> b;
		int n=a.size(),m=b.size(),cnt=0;
		a=' '+a;//主串 
		b=' '+b;//模式串 
		//套用KMP模板 
		ne[1]=0;
		for(int i=2,j=0;i<=m;i++){//求next数组 
			while(j && b[i]!=b[j+1]) j=ne[j];
			if(b[i]==b[j+1]) j++;
			ne[i]=j;
		}
		for(int i=1,j=0;i<=n;i++){
			while(j && a[i]!=b[j+1]) j=ne[j];
			if(a[i]==b[j+1]) j++;
			if(j==m) cnt++,j=0;//计数的同时,还要初始化 j,再开始向后匹配 
			//若是可以重叠的话 就将 j=0 改成 j=ne[j],再继续向后匹配
			//若是要求模式串在主串中第一次出现的位置 ,就直接输出 i-m+1 
		}
		cout << cnt << endl;
	}
	return 0;
}
相关推荐
无巧不成书021817 天前
KMP适配鸿蒙开发实战|从0到1搭建可运行工程
javascript·华为·harmonyos·kmp
无巧不成书021817 天前
Kotlin Multiplatform (KMP) 鸿蒙开发整合实战|2026最新方案
android·开发语言·kotlin·harmonyos·kmp
特立独行的猫a20 天前
Kuikly多端框架(KMP)实战:现代Android/KMP状态管理指南:基于StateFlow与UDF架构的实践
android·架构·harmonyos·状态管理·kmp·stateflow·kuikly
特立独行的猫a21 天前
Kuikly多端框架(KMP)实战:KMP中的 Ktor 网络库的多端适配指南
android·网络·harmonyos·ktor·compose·kmp·kuikly
特立独行的猫a22 天前
腾讯Kuikly框架实战:基于腾讯Kuikly框架实现Material3风格底部导航栏
android·harmonyos·compose·kmp·实战案例·kuikly
飞机和胖和黄23 天前
字符串和KMP
前端·javascript·数据结构·数据库·kmp
特立独行的猫a1 个月前
主要跨端开发框架对比:Flutter、RN、KMP、Uniapp、Cordova,谁是未来主流?
flutter·uni-app·uniapp·rn·kmp·kuikly
王老师青少年编程2 个月前
信奥赛C++提高组csp-s之KMP算法详解
c++·kmp·字符串匹配·csp·信奥赛·csp-s·提高组
mjhcsp2 个月前
C++ KMP 算法:原理、实现与应用全解析
java·c++·算法·kmp
熊猫钓鱼>_>2 个月前
Makefile应用场景实践日志:构建高效C/C++项目工作流
c语言·c++·bug·mfc·makefile·编译·kmp