当前位置: 首页 > news >正文

题解:字符串改造

【题目描述】

小明有一个字符串,由小写英文字母组成。

小明准备对他的字符串进行改造,改造的方法是删除字符串中间的一部分字符。小明希望改造完后,新的字符串中的相邻字符都满足左边的字符小于等于右边的字符(a < b < ... < z)。

例如,对于字符串 happy,小明可以删除第一个字母,变成 appy,满足要求。或者小明删除第二字母,变成 hppy,也满足要求。小明还有其他方法使得结果满足要求。再如,对于字符串 autumn,可以删除 3 个字母变成 amn,或者删除 4 个字母变成 at。其他满足要求的方案还有很多。

小明想知道,对于一个字符串,至少要删除多少个字母能满足要求。

【输入】

输入一行包含一个字符串。

【输出】

输出一行,包含一个整数,表示最少要删除的字母个数。

【输入样例】

happy

【输出样例】

1

【代码详解】

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;const int N = 100005;
string s;  // 输入字符串
int n, a[N], b[N], f[N], maxn, len;  // n: 字符串长度,a: 字符转换为数字,b: 递增子序列数组,f: 以i结尾的最长不下降子序列长度int main()
{cin >> s;  // 读入字符串n = s.size();  // 获取字符串长度s = " " + s;  // 在字符串前加一个空格,使下标从1开始// 将字符转换为数字(a=0, b=1, ..., z=25)for (int i = 1; i <= n; i++){a[i] = s[i] - 'a';}// 调试输出// for (int i=1; i<=n; i++)//     cout << a[i] << " ";// cout << endl;// 计算最长不下降子序列的长度for (int i = 1; i <= n; i++){if (a[i] >= b[len])  // 如果当前字符大于等于b数组末尾元素{b[++len] = a[i];  // 将当前字符添加到b数组末尾f[i] = len;  // 记录以i结尾的最长不下降子序列长度}else{// 二分查找第一个大于a[i]的位置int m = upper_bound(b + 1, b + len + 1, a[i]) - b;b[m] = a[i];  // 用a[i]替换找到的位置f[i] = m;  // 记录以i结尾的最长不下降子序列长度}}// 调试输出// for (int i=1; i<=len; i++)//     cout << b[i] << " ";// cout << endl;// 输出需要删除的字符数// 总字符数减去最长不下降子序列的长度cout << n - len;return 0;
}

【运行结果】

happy
1
http://www.jsqmd.com/news/399032/

相关文章:

  • 从dolt到Prolly-Tree
  • 题解:AcWing 895 最长上升子序列
  • html5的原生模板标签template
  • 题解:AcWing 896 最长上升子序列 II
  • 税务
  • TKG-Thinker:通过智能体强化学习实现时序知识图谱的动态推理
  • 当方向盘遇上数学魔法:MPC主动转向控制实战手记
  • 毕业论文神器!口碑爆棚的降AIGC平台 —— 千笔·降AI率助手
  • 考虑阶梯式碳机制与电制氢的综合能源系统热电优化探索
  • 实测才敢推!8个一键生成论文工具:本科生毕业论文+开题报告写作全测评
  • 用过才敢说!千笔·专业论文写作工具,本科生论文救星!
  • 赶deadline必备!千笔ai写作,全网爆红的AI论文平台
  • 基于深度学习的夜间红外小目标检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
  • 新手也能上手!学生热捧的降AI率网站 —— 千笔·专业降AIGC智能体
  • 建议收藏|10个AI论文工具深度测评:专科生毕业论文+科研写作必备神器!
  • 互联网大厂Java面试实录:Spring Boot与微服务在电商场景中的应用
  • 深入浅出CopyOnWriteArrayList
  • 文章图库
  • 题解:AcWing 1016 最大上升子序列和
  • 少走弯路:降AIGC软件,专科生首选千笔AI VS Checkjie
  • 为什么我建议你建立内容资产而不是流量资产?
  • 2026/2/21 总结
  • 国产激光品牌深度测评:技术实力与市场表现全解读
  • Ora: ORA-28040-数据库不接受您的客户端的验证协议
  • 【系统分析师】9.6 安全管理措施
  • 06实战处理AI音乐技术详解第一阶段:频谱破坏·卓伊凡
  • 海康机器人3D 机器人引导 —— 空间基础篇一
  • 顶配纸尿裤推荐:2026年高端新生儿纸尿裤权威选购指南 - 速递信息
  • 从此告别拖延,AI论文写作软件 千笔AI VS 知文AI,专科生专属神器!
  • 摆脱论文困扰! 千笔AI VS 灵感ai,更贴合MBA的降AIGC工具