/**
求字符串匹配的最小和最大匹配数量,同一字符不能重复被匹配。
数据小,暴力求出每段匹配区间,然后贪心的扫描线
*/
#include <stdio.h>
#include <string.h>
#define N 1001
char s1[N],s2[N];
int p[N][2];
int main()
{
int i,j,k = 0,ii,maxx,minn;
scanf("%s%s",s2,s1);
for(i = 0; s1[i]; ++i)
{
for(ii = i,j = 0; s2[j] && s1[ii] && s2[j] == s1[ii]; ++ii,++j);
if(s2[j] == 0)
{
p[k][0] = i;
p[k][1] = ii - 1;
++k;
}
if(s1[ii] == 0)
break;
}
maxx = 0;
for(i = 0; i < k; i = j)
{
++maxx;
for(j = i + 1; j < k && p[j][0] <= p[i][1]; ++j);
}
minn = 0;
for(i = 0; i < k;)
{
++minn;
f
hnu 12439 #贪心
最新推荐文章于 2025-07-12 18:53:44 发布
该博客介绍了一种解决字符串匹配问题的方法,通过暴力求出每段匹配区间,并使用贪心策略来找到最小和最大匹配数量。代码示例中展示了如何实现这个算法,最终输出最小和最大匹配数。
订阅专栏 解锁全文
521

被折叠的 条评论
为什么被折叠?



