尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

C++课后习题训练记录Day137

C++课后习题训练记录Day137
📅 发布时间:2026/6/23 10:22:19

1.练习项目 :

题目描述:

小 Z 同学每天都喜欢斤斤计较,今天他又跟字符串杠起来了。

他看到了两个字符串 S1 S2 ,他想知道 S1 在 S2 中出现了多少次。

现在给出两个串 S1,S2(只有大写字母),求 S1 在 S2 中出现了多少次。

输入描述

共输入两行,第一行为 S1,第二行为 S2。

1<len(s1)<len(s2)<106,字符只为大写字母或小写字母。

输出描述

输出一个整数,表示 S1 在 S2 中出现了多少次。

2.选择课程

在蓝桥云课中选择题库,选择题号2047并开始练习。

3.开始练习

(1)KMP算法 :

#include<bits/stdc++.h>
using namespace std;

const int N = 1e6+10;
char s[N],p[N];
int nex[N];

int main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin>>p+1;int m=strlen(p+1);
cin>>s+1;int n=strlen(s+1);

//get next
nex[0]=nex[1]=0;
for(int i=2,j=0;i<=m;i++){
while(j&&p[i]!=p[j+1])j=nex[j];
if(p[i]==p[j+1])j++;
nex[i]=j;
}

int ans=0;
for(int i=1,j=0;i<=n;i++){
while(j&&s[i]!=p[j+1])j=nex[j];
if(s[i]==p[j+1])j++;
if(j==m)ans++;
}

cout<<ans<<'\n';
return 0;
}

(2)字符串哈希

#include<bits/stdc++.h>
using namespace std;

const int N = 1e6+10;
char s[N],p[N];
typedef unsigned long long ull;
const ull base = 131;
ull h1[N],h2[N],b[N];

ull getHash(ull h[],int l,int r)
{
return h[r]-h[l-1]*b[r-l+1];
}

int main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin>>p+1;int m=strlen(p+1);
cin>>s+1;int n=strlen(s+1);
b[0]=1;
for(int i=1;i<=n;i++){
b[i]=b[i-1]*base;
h1[i]=h1[i-1]*base+(int)p[i];
h2[i]=h2[i-1]*base+(int)s[i];
}
int ans=0;
for(int i=1;i+m-1<=n;i++){
if(getHash(h1,1,m)==getHash(h2,i,i+m-1))ans++;
}


cout<<ans<<'\n';
return 0;
}

(3)检验结果

对此代码进行检验,检验后无报错,提交此代码,判题结果为正确100分。

(4)练习心得:注意每段代码末尾的分号是否存在 ,如不存在则需即使补充;输入法 是否切换为英语模式;语法是否错误。

相关新闻

  • 2026南宁西乡塘黄金回收全攻略:卖金避坑指南与靠谱渠道实测 - 行行星
  • 深圳坪山区黄金回收六家门店当天变现到账 - 上门黄金回收
  • 孩子早恋怎么办?吉林省农安市资质全面的军事化特训基地实力推荐 - 武汉中职最新信息发布

最新新闻

  • 我做了一个只用来搜歌词的小 App
  • Edge浏览器停止更新,并回退到老版本方法
  • Manim物理模拟:别自己写欧拉了!
  • 古典密码 - 维吉尼亚密码破解
  • 每日一个开源项目(第138篇):OpenMontage - 把 AI 编程助手变成完整的视频制作团队
  • Childhood,23款童年卡牌游戏复刻

日新闻

  • Arduino-ESP32项目深度解析:解锁隐藏芯片支持与架构演进
  • 2026年 系统窗厂家/品牌推荐榜单:隔音系统窗+高端系统门窗的核心优势与选购指南 - 品牌发掘
  • NVBench:首个双语非言语发声语音合成评测基准详解与实践

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号