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

蓝桥杯 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.xdnf.cn/news/1915.html

相关文章:

  • gradio 订单处理agent
  • 通过VSCode远程连接到CentOS7/Ubuntu18等老系统
  • 燃气经营从业人员有哪些类别
  • Doris vs ClickHouse:深入对比MPP数据库聚合操作的核心区别
  • Excel表格批量翻译对照翻译(使用AI助手)
  • ESG跨境电商如何为国内的跨境电商企业打开国外的市场
  • JDK 24:Java 24 中的新功能
  • SOC估算:开路电压修正的安时积分法
  • Doris表设计与分区策略:让海量数据管理更高效
  • 软测面经(私)
  • 分布式队列对消息语义的处理
  • MySQL元数据库完全指南:探秘数据背后的数据
  • 金仓数据库KingbaseES技术实践类深度剖析与实战指南
  • 单片机-89C51部分:2、环境搭建
  • 信奥赛之c++基础(初识循环嵌套与ASCII密码本)
  • browser-use:AI驱动的浏览器自动化工具使用指南
  • van-field组件设置为textarea属性被软键盘遮挡问题
  • Linux下编译MNN
  • Java—ThreadLocal底层实现原理
  • uniapp-商城-36-shop 购物车 选好了 进行订单确认2 支付方式颜色变化和颜色滤镜filter
  • 将AAB转APK的两种好用方法AAB to APK Converter
  • 深入理解Java基本类型
  • 软考-软件设计师中级备考 1、计算机内数据的表示
  • 软件编程命名规范
  • Linux 官方蓝牙协议栈 BlueZ 第一篇:入门与架构概览
  • Fanotify学习
  • 基于深度学习的视频目标跟踪算法研究
  • Android 9.0上开发的,如果设置没启动wifi的话,安卓app如何启动wifi
  • cmake 执行命令
  • 《Java编程思想》读书笔记:第十章 内部类