P10442 「MYOI-R3」字符串

「MYOI-R3」字符串

题目描述

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

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

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

输入格式

第一行一个字符串 s s s

第二行一个字符串 t t t

输出格式

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

样例 #1

样例输入 #1

abc
bc

样例输出 #1

2

样例 #2

样例输入 #2

aaaaa
bbbbb

样例输出 #2

0

提示

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

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

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

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

本题采用捆绑测试

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

Subtask \text{Subtask} Subtask$n\le $特殊性质总分值
1 1 1 10 10 10 25 25 25
2 2 2 1 0 5 10^5 105 A \text{A} A 25 25 25
3 3 3 1 0 5 10^5 105 B \text{B} B 25 25 25
4 4 4 1 0 5 10^5 105 25 25 25

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

特殊性质 A \text{A} A s s s 是一个 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}

方法1
好的,下面是使用标准格式的解答:

解题思路:

本题要求我们通过删除字符并重新排列,使得字符串 s s s t t t 相等,并求出操作后字符串 s s s 的最大长度。我们可以通过统计 s s s t t t 中每个字符出现的次数,然后取每个字符在两个字符串中出现次数的最小值,最后将这些最小值相加,即为操作后字符串 s s s 的最大长度。

具体步骤如下:

  1. 定义两个长度为 26 的数组 count_scount_t,分别用于统计字符串 s s s t t t 中每个字符出现的次数。
  2. 遍历字符串 s s s,对于每个字符 c,将 count_s[c - 'a'] 的值加 1。
  3. 遍历字符串 t t t,对于每个字符 c,将 count_t[c - 'a'] 的值加 1。
  4. 定义变量 max_length,用于存储操作后字符串 s s s 的最大长度,初始化为 0。
  5. 遍历 0 到 25,对于每个位置 i,取 count_s[i]count_t[i] 的最小值,将其加到 max_length 上。
  6. 输出 max_length 的值作为答案。

C++代码:

#include <iostream>
#include <string>
using namespace std;int main() {string s, t;cin >> s >> t;int count_s[26] = {0};  // 统计字符串s中每个字符出现的次数int count_t[26] = {0};  // 统计字符串t中每个字符出现的次数// 统计字符串s中每个字符出现的次数for (char c : s) {count_s[c - 'a']++;}// 统计字符串t中每个字符出现的次数for (char c : t) {count_t[c - 'a']++;}int max_length = 0;// 计算操作后字符串s的最大长度for (int i = 0; i < 26; i++) {max_length += min(count_s[i], count_t[i]);}cout << max_length << endl;return 0;
}

代码解释:

  1. 首先,我们读取字符串 st
  2. 定义两个长度为 26 的数组 count_scount_t,用于统计字符串 st 中每个字符出现的次数。初始化数组为全 0。
  3. 使用范围循环遍历字符串 s 中的每个字符 c,将 count_s[c - 'a'] 的值加 1,统计字符串 s 中每个字符出现的次数。
  4. 使用范围循环遍历字符串 t 中的每个字符 c,将 count_t[c - 'a'] 的值加 1,统计字符串 t 中每个字符出现的次数。
  5. 定义变量 max_length,用于存储操作后字符串 s 的最大长度,初始化为 0。
  6. 使用 for 循环遍历 0 到 25,对于每个位置 i,取 count_s[i]count_t[i] 的最小值,将其加到 max_length 上。
  7. 输出 max_length 的值作为答案。

复杂度分析:

  • 时间复杂度: O ( n ) O(n) O(n),其中 n n n 是字符串 s s s t t t 的最大长度。我们需要遍历字符串 s s s t t t 各一次,以及遍历 0 到 25,总的时间复杂度为 O ( n ) O(n) O(n)
  • 空间复杂度: O ( 1 ) O(1) O(1)。我们使用了两个长度为 26 的数组来统计字符出现的次数,空间复杂度为 O ( 1 ) O(1) O(1)

输入输出样例:

输入:

abc
bc

输出:

2

输入:

aaaaa
bbbbb

输出:

0

该解决方案通过统计字符串 s s s t t t 中每个字符出现的次数,然后取每个字符在两个字符串中出现次数的最小值,最后将这些最小值相加,得到操作后字符串 s s s 的最大长度。时间复杂度为 O ( n ) O(n) O(n),空间复杂度为 O ( 1 ) O(1) O(1)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/18601.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入探索 MongoDB:高级索引解析与优化策略

MongoDB 是一种非常流行的 NoSQL 数据库&#xff0c;它支持丰富的索引类型和功能&#xff0c;以提高数据查询的效率和性能。本文将详细介绍 MongoDB 的高级索引&#xff0c;包括基本语法、常用命令、示例、应用场景、注意事项和总结。 基本语法 在 MongoDB 中&#xff0c;可以…

密码学基础概念

加密性 什么是加密&#xff1f; 1.对原有的明文数据&#xff0c;执行某种运算&#xff0c;得到密文数据。 2.密文数据对于未授权人员而言&#xff0c;在一定上程度上加大了解读的难度 3.加密功能用于实现机密性 什么是密钥&#xff1f; 1.如同持有保险柜钥匙才能打开保险柜…

数据结构算法题day05

数据结构算法题day05 题目算法思想代码 题目 从有序表中删除所有其值重复的元素&#xff0c;使表中所有元素的值均不同。算法思想 第一个元素&#xff08;不重复&#xff09;依次向后扫描&#xff0c;不重复就保留&#xff0c;重复&#xff08;不保留&#xff09;就删除所有重…

排序进阶----插入排序,希尔排序

各位看官们好&#xff0c;接下来鄙人想与大家分享的实现被称为六大排序之一的插入排序。其实关于这六大排序在我们最开始就已经接触过了。我们在最开始学习c语言的时候&#xff0c;我们要学习到其中之一的冒泡排序。虽然现在看起来冒泡排序确实是没有太大的实际效果&#xff0c…

【Xilinx约束】create_generated_clock 约束语法介绍

在 Xilinx Vivado 环境中&#xff0c;使用 create_generated_clock 约束来定义由锁相环&#xff08;PLL&#xff09;或时钟管理模块&#xff08;如 MMCM 或 DCM&#xff09;生成的时钟。这个约束用于指定生成时钟的属性&#xff0c;例如时钟的源、相位和频率。 基本语法 以下是…

618必买的数码好物有哪些?盘点兼具设计与实用的数码好物分享

随着618购物节的到来&#xff0c;数码爱好者们又开始跃跃欲试&#xff0c;期待在这个年度大促中寻找到自己心仪的数码好物&#xff0c;在这个数字化时代&#xff0c;数码产品不仅是我们日常生活的必需品&#xff0c;更是提升生活品质的重要工具&#xff0c;那么在众多的数码产品…

【MySQL】 1130 -Host ‘14.*.**.*‘ is not allowed to connect to this MySQL server

这个错误表明MySQL服务器拒绝了来自IP地址为14.*.**.*的主机的连接请求。这通常是由于MySQL用户的主机限制引起的。 要解决这个问题&#xff0c;你需要在MySQL中允许指定主机的连接。你可以按照以下步骤操作&#xff1a; 使用具有足够权限的用户&#xff08;如root用户&#x…

HNU-计算机体系结构-实验1-RISC-V流水线

计算机体系结构 实验1 计科210X 甘晴void 202108010XXX 1 实验目的 参考提供为了更好的理解RISC-V&#xff0c;通过学习RV32I Core的设计图&#xff0c;理解每条指令的数据流和控制信号&#xff0c;为之后指令流水线及乱序发射实验打下基础。 参考资料&#xff1a; RISC-…

Ubuntu20.04升级到22.04之后出现的问题

项目场景&#xff1a; 之前一致使用的是Ubuntu20.04&#xff0c;虽然丑了点&#xff0c;但是用着没什么问题&#xff0c;最近没能按捺住好奇心&#xff0c;升级到了22.04&#xff0c;升级后颜值有所提高&#xff0c;但是也带来了一些问题。 从20.04升级到22.04&#xff0c;起始…

【学习笔记】Axios、Promise

TypeScript 1、Axios 1.1、概述 1.2、axios 的基本使用 1.3、axios 的请求方式及对应的 API 1.4、axios 请求的响应结果结构 1.5、axios 常用配置选项 1.6、axios.create() 1.7、拦截器 1.8、取消请求2、Promise 2.1、封装 fs 读…

sendmail发送邮件配置详解?如何正确设置?

sendmail发送邮件如何保障安全&#xff1f;AokSend有何安全措施&#xff1f; 为了确保sendmail发送邮件的高效性和安全性&#xff0c;正确配置是至关重要的。本文将详细介绍sendmail发送邮件的配置步骤&#xff0c;并探讨如何保障sendmail发送邮件的安全性。同时&#xff0c;我…

界面控件DevExpress WinForms的流程图组件 - 可完美复制Visio功能(一)

DevExpress WinForms的Diagram&#xff08;流程图&#xff09;组件允许您复制Microsoft Visio中的许多功能&#xff0c;并能在下一个Windows Forms项目中引入信息丰富的图表、流程图和组织图。 P.S&#xff1a;DevExpress WinForms拥有180组件和UI库&#xff0c;能为Windows F…

Express 静态资源存放

如何在 express 中提供对外可以访问的静态资源&#xff1f;只要利用expres.static这个中间件就可以了。 例如&#xff0c;通过如下代码就可以将 static 目录下的图片、CSS 文件、JavaScript 文件对外开放访问了。 app.use(express.static(static)); 现在可以访问 static 目录…

C++项目(游戏角色仓库管理)

#include<iostream> using namespace std; #include<string> #define MAX 6 //设计游戏角色结构体 struct Hero {string name;int gongji;int fangyu;int tili;int tianfu; }; //设计仓库结构体 struct WareHouse {struct Hero array[MAX];int m_size; };//1.添加全…

2024年中国金融行业网络安全研究报告

网络安全一直是国家安全的核心组成部分&#xff0c;特别是在金融行业&#xff0c;金融机构拥有大量的敏感数据&#xff0c;包括个人信息、交易记录、财务报告等&#xff0c;这些数据的安全直接关系到消费者的利益和金融市场的稳定&#xff0c;因此金融行业在网络安全建设领域一…

测试工具记录

1.ios 弱网 1.xcode打开开发者选项 2.开发者选项 -> Network Link Conditioner 字段解释&#xff1a; In Bandwidth&#xff08;入口带宽&#xff09;&#xff1a;用于模拟网络的入口带宽&#xff0c;即数据从网络进入设备的速度。单位Kbps。 In Packet Loss&#xff08;入…

成都市酷客焕学新媒体科技有限公司:助力品牌打破困境!

在数字化浪潮的推动下&#xff0c;营销策略对品牌的发展愈发关键。成都市酷客焕学新媒体科技有限公司&#xff0c;作为短视频营销领域的佼佼者&#xff0c;凭借其卓越的策略和实力&#xff0c;助力众多品牌在信息海洋中脱颖而出&#xff0c;实现品牌的显著增长。 酷客焕学专注于…

计算属性和监听属性

计算属性&#xff08;Computed Properties&#xff09; 定义: 计算属性是基于它们的依赖进行缓存的&#xff0c;只有当依赖发生变化时&#xff0c;它们才会重新计算。这使得计算属性在性能上很有优势&#xff0c;避免了不必要的重复计算。 适用场景: 当你需要根据某个或某些数…

部署八戒-Chat-1.8B 模型

1 简单介绍 八戒-Chat-1.8B 八戒-Chat-1.8B是运用 InternLM2-Chat-1.8B 模型进行微调训练的优秀成果。其中&#xff0c;八戒-Chat-1.8B 是利用《西游记》剧本中所有关于猪八戒的台词和语句以及 LLM API 生成的相关数据结果&#xff0c;进行全量微调得到的猪八戒聊天模型。作为 …

python-使用API

python-使用API 使用github的api-即url地址请求数据 https://api.github.com/search/repositories?qlanguage:python&sortstars #这个调用返回GitHub当前托管了多少个Python项目&#xff0c;还有有关最受欢迎的Python仓库的信息。在浏览器中输入上面地址可以看到该接口&…