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

蓝桥杯 3. 密码脱落

密码脱落

原题目链接

题目描述

X 星球的考古学家发现了一批古代留下来的密码。

这些密码是由 ABCD 四种植物的种子串成的序列。

仔细分析发现,这些密码串当初应该是前后对称的(即镜像串)。

由于年代久远,其中许多种子脱落了,因此有些串可能失去了镜像的特征

你的任务是:

  • 给定一个现在看到的密码串
  • 计算出至少脱落多少个种子,才能使得当初的串变成现在的样子。

输入描述

  • 输入一行,表示现在看到的密码串(字符串长度不超过 1000)。

输出描述

  • 输出一个正整数,表示至少脱落了多少个种子。

输入输出样例

示例 1

输入

ABCBA

输出

0

示例 2

输入

ABDCDCBABC

输出

3

(说明:脱落越少,保持镜像结构越好,求最少脱落的数量。)

c++代码

#include<bits/stdc++.h>using namespace std;string a, b;
int n;int main() {cin >> a;b = a, reverse(a.begin(), a.end());n = a.size();vector<int> last(n + 1), now(n + 1);for (int i = 1; i <= n; i++) {for (int j = 1; j <= n; j++) {now[j] = a[i - 1] == b[j - 1] ? last[j - 1] + 1 : max(last[j], now[j - 1]);}last = now;}cout << n - last[n];return 0;
}//by wqs

算法解析

其实就是最长公共子序列问题

求出s和它的反转sr的最长公共子序列,它是一个回文串

需要添加的字符个数就是长度减去这个子序列的长度

用求最长公共子序列的常规方法-动态规划来解

http://www.dtcms.com/a/154555.html

相关文章:

  • 深度学习--循环神经网络RNN
  • 线程怎么创建?Java 四种方式一网打尽
  • 洛谷 B3647:【模板】Floyd 算法
  • 系统测试的技术要求
  • 404了怎么办快把路由给我断掉(React配置路由)
  • 信创时代开发工具选择指南:国产替代背景下的技术生态与实践路径
  • Ollama 是什么
  • POLARIS土壤相关数据集
  • 基于CATIA参数化管道建模的自动化插件开发实践——NX建模之管道命令的参考与移植
  • 企业级AI开发利器:Spring AI框架深度解析与实战
  • 传感器模块有助于加速嵌入式视觉开发
  • Infortrend普安存储 KS 私有云方案,构建生产线AOI光学检测数据的高速处理平台
  • OpenCv高阶(十)——光流估计
  • 第六章 进阶06 读书群第一次团建
  • 五一去荣昌吃卤鹅?基于Java和天地图的寻找荣昌卤鹅店实践
  • 【AI】[特殊字符]生产规模的向量数据库 Pinecone 使用指南
  • 京东平台关键字搜索接口开发指南:Python实现与代码详解
  • Tailwind CSS 实战:基于 Kooboo 构建企业官网页面(一)
  • 线程函数库
  • Dify依赖管理poetry切换为uv
  • C语言 函数补充
  • 【差分隐私】basic primitive的含义
  • 【C++指南】告别C字符串陷阱:如何实现封装string?
  • 更智能的银行体验:生成式 AI 与语义搜索的实际应用
  • 深度剖析操作系统核心(第二节):从X86/ARM/MIPS处理器架构到虚拟内存、分段分页、Linux内存管理,再揭秘进程线程限制与优化秘籍,助你成为OS高手!
  • 开源项目实战学习之YOLO11:ultralytics-cfg-datasets-Objects365、open-images-v7.yaml文件(六)
  • 清理HiNas(海纳斯) Docker日志并限制日志大小
  • [原创](现代Delphi 12指南):[macOS 64bit App开发]:如何使用CFStringRef类型字符串?
  • 【Linux学习笔记】进程的fork创建 exit终止 wait等待
  • Graph Database Self-Managed Neo4j 知识图谱存储实践2:通过官方新手例子入门(未完成)