news 2026/5/6 8:36:28

csp信奥赛C++高频考点专项训练之字符串 --【字符统计】:「MYOI-R3」字符串

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
csp信奥赛C++高频考点专项训练之字符串 --【字符统计】:「MYOI-R3」字符串

csp信奥赛C++高频考点专项训练之字符串 --【字符统计】:「MYOI-R3」字符串

题目描述

给定字符串s , t s,ts,t

现在你要在s , t s,ts,t中删除一些字符并将它们重新排列使s = t s=ts=t

问操作后的∣ s ∣ |s|s(即字符串s ss的长度)最大是多少?

输入格式

第一行一个字符串s ss

第二行一个字符串t tt

输出格式

一行一个整数,表示操作后的∣ s ∣ |s|s的最大值。

输入输出样例 1
输入 1
abc bc
输出 1
2
输入输出样例 2
输入 2
aaaaa bbbbb
输出 2
0
说明/提示

在第一个样例中,将a删除,留下bc

此时∣ s ∣ = 2 |s|=2s=2,可以证明这是最优解。

在第二个样例中,将aaaaa删除,留下空串。
bbbbb删除,留下空串。

此时∣ s ∣ = 0 |s|=0s=0,可以证明这是最优解。

本题采用捆绑测试

n = max ⁡ ( ∣ s ∣ , ∣ t ∣ ) n=\max(|s|,|t|)n=max(s,t)

Subtask \text{Subtask}Subtask$n\le $特殊性质总分值
1 1110 101025 2525
2 2210 5 10^5105A \text{A}A25 2525
3 3310 5 10^5105B \text{B}B25 2525
4 4410 5 10^510525 2525

对于100 % 100\%100%的数据,1 ≤ ∣ s ∣ , ∣ t ∣ ≤ 10 5 1 \le |s|,|t| \le 10^51s,t105,字符串均由小写字母组成。

特殊性质A \text{A}As ss是一个a ∼ z \text{a}\sim\text{z}az的排列。

特殊性质B \text{B}B:保证s i , t i ∈ { a , b } s_i,t_i\in\{\text{a},\text{b} \}si,ti{a,b}

思路分析

题目要求:删除两个字符串中的部分字符,并重新排列剩下的字符,使得两个字符串相等。由于可以任意重排,最终字符串的字符组成只取决于两个字符串中字符出现的频数。对于每个字符,能保留的最大数量就是两个字符串中该字符出现次数的最小值。因此,答案等于所有字符的min(cnt_s[ch], cnt_t[ch])之和。

实现步骤:

  1. 读入字符串st
  2. 用两个长度为 26 的数组ab分别统计st中每个字母出现的次数。
  3. 遍历 26 个字母,累加min(a[i], b[i])到答案。
  4. 输出答案。

时间复杂度 O(|s|+|t|),空间 O(1)。

代码实现

#include<bits/stdc++.h>usingnamespacestd;string s,t;//两个输入字符串inta[26];//桶a:统计s中每个字母出现次数intb[26];//桶b:统计t中每个字母出现次数intans=0;//最终能得到的字符串长度intmain(){cin>>s>>t;//读入字符串//统计s中每个字母的出现次数for(inti=0;i<s.size();i++){a[s[i]-'a']++;//将字符转换为0~25的下标并累加}//统计t中每个字母的出现次数for(inti=0;i<t.size();i++){b[t[i]-'a']++;}//累加每个字母的最小出现次数for(inti=0;i<26;i++){ans+=min(a[i],b[i]);//取较小值并累加}cout<<ans;//输出结果return0;}

功能分析

  • 输入处理:从标准输入读取两个字符串st
  • 频数统计:使用两个整型数组ab分别记录st中每个小写字母('a'~'z')出现的次数。通过字符 - 'a'将字符映射到数组下标。
  • 答案计算:遍历 26 个字母,将两个数组对应位置的最小值累加到ans
  • 输出结果:打印ans,即操作后字符串的最大可能长度。

该算法正确解决了问题,时间复杂度 O(|s|+|t|),空间复杂度 O(1),满足题目数据范围(|s|,|t| ≤ 10^5),可通过所有测试点。


【完整系列请查看专栏】:
信奥赛C++普及组CSP-J一等奖通关刷题题单及题解:
https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转


各种学习资料,助力大家一站式学习和提升!!!

#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"########## 一站式掌握信奥赛知识! ##########";cout<<"############# 冲刺信奥赛拿奖! #############";cout<<"###### 课程购买后永久学习,不受限制! ######";return0;}

【秘籍汇总】(完整csp信奥赛C++学习资料):

1、csp/信奥赛C++,完整信奥赛系列课程(永久学习):

https://edu.csdn.net/lecturer/7901 点击跳转

2、CSP信奥赛C++竞赛拿奖视频课:

https://edu.csdn.net/course/detail/40437 点击跳转

https://edu.csdn.net/course/detail/41081 点击跳转

3、csp信奥赛高频考点知识详解及案例实践:

CSP信奥赛C++动态规划:
https://blog.csdn.net/weixin_66461496/category_13096895.html点击跳转

CSP信奥赛C++标准模板库STL:
https://blog.csdn.net/weixin_66461496/category_13108077.html 点击跳转

信奥赛C++提高组csp-s知识详解及案例实践:
https://blog.csdn.net/weixin_66461496/category_13113932.html 点击跳转

4、csp信奥赛冲刺一等奖有效刷题题解:

信奥赛C++普及组CSP-J一等奖通关刷题题单及题解:
https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转

信奥赛C++提高组csp-j初赛&复赛真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转

信奥赛C++提高组csp-s初赛&复赛真题题解(持续更新):
https://blog.csdn.net/weixin_66461496/category_13125089.html 点击跳转

5、GESP C++考级真题题解:

GESP(C++ 一级+二级+三级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转

GESP(C++ 四级+五级+六级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转


GESP(C++ 七级+八级)真题题解(持续更新):
https://blog.csdn.net/weixin_66461496/category_13117178.html 点击跳转

· 文末祝福 ·

#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"跟着王老师一起学习信奥赛C++";cout<<" 成就更好的自己! ";cout<<" csp信奥赛一等奖属于你! ";return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/6 8:35:31

Java实现Llama 3推理引擎:架构、部署与生产实践

1. 项目概述&#xff1a;当Llama 3遇上Java&#xff0c;一个轻量级推理引擎的诞生最近在开源社区里闲逛&#xff0c;发现了一个挺有意思的项目&#xff1a;mukel/llama3.java。光看名字&#xff0c;你大概就能猜到它的核心——这是一个用纯Java实现的Meta Llama 3大语言模型推理…

作者头像 李华
网站建设 2026/5/6 8:35:28

为AI编程助手构建持久记忆:基于知识图谱的MindReader MCP部署与实战

1. 项目概述&#xff1a;为你的AI助手装上“持久记忆”如果你和我一样&#xff0c;日常重度依赖像Claude Code或Cursor这样的AI编程助手&#xff0c;那你肯定也遇到过这个痛点&#xff1a;每次开启一个新的对话会话&#xff0c;AI就像得了“健忘症”&#xff0c;完全不记得我们…

作者头像 李华
网站建设 2026/5/6 8:32:28

实测对比:SQLCoder vs GPT-4,哪个写SQL更靠谱?附Colab免费运行教程

SQLCoder与GPT-4实战评测&#xff1a;谁才是自然语言转SQL的最佳工具&#xff1f; 在数据驱动的商业决策时代&#xff0c;能够快速准确地将业务问题转化为SQL查询已成为数据分析师和开发者的核心能力。传统上&#xff0c;这需要深厚的数据库知识和SQL编写经验&#xff0c;但如今…

作者头像 李华
网站建设 2026/5/6 8:31:33

视觉个性化图灵测试(VPTT):AI如何学习人类审美偏好

1. 项目概述&#xff1a;当机器开始模仿人类审美在计算机视觉与人机交互的交叉领域&#xff0c;视觉个性化图灵测试&#xff08;Visual Personalized Turing Test&#xff0c;简称VPTT&#xff09;正在重新定义我们判断"机器智能"的标准。传统图灵测试依赖语言对话&a…

作者头像 李华
网站建设 2026/5/6 8:29:58

LeaguePrank终极指南:3步安全自定义英雄联盟游戏展示

LeaguePrank终极指南&#xff1a;3步安全自定义英雄联盟游戏展示 【免费下载链接】LeaguePrank 项目地址: https://gitcode.com/gh_mirrors/le/LeaguePrank 想要在英雄联盟中展示与众不同的游戏身份&#xff0c;但又担心账号安全&#xff1f;LeaguePrank为你提供了一个…

作者头像 李华
网站建设 2026/5/6 8:28:33

如何使用Vundle.vim清理插件:释放磁盘空间的终极指南

如何使用Vundle.vim清理插件&#xff1a;释放磁盘空间的终极指南 【免费下载链接】Vundle.vim Vundle, the plug-in manager for Vim 项目地址: https://gitcode.com/gh_mirrors/vu/Vundle.vim Vundle.vim是Vim编辑器的插件管理器&#xff0c;它能帮助用户轻松安装、更新…

作者头像 李华