题目2268:蓝桥杯2016年第七届真题-密码脱落

代码思路

代码采用的是**最长公共子序列(LCS)**的思路:

  1. 将原字符串反转得到新字符串

  2. 求原字符串和反转字符串的最长公共子序列长度

  3. 答案 = 原字符串长度 - 最长公共子序列长度

#include<iostream>

#include<string>

#include<cstring>

#include<algorithm>

using namespace std;

int dp[1002][1002];//表示s的前i个字符和r的前j个字符的LCS长度

string s;//原始字符串

char r[1002];//存放反转后的字符串

int k;

int main(){

cin>>s;

//将原始字符串反转,存放到r数组

for(int i=s.length()-1;i>=0;i--){

r[k++]=s[i];

}

//求最长公共子序列

for(int i=1;i<=s.length();i++){//i遍历原字符串每个字符

for(int j=1;j<=strlen(r);j++){//j遍历反转后的字符串

if(s[i-1]==r[j-1]){

dp[i][j]=dp[i-1][j-1]+1;

}else{

dp[i][j]=max(dp[i-1][j],dp[i][j-1]);

}

}

}

cout<<s.length()-dp[s.length()][strlen(r)]<<endl;

return 0;

}

相关推荐
吃好睡好便好9 小时前
在Matlab中绘制横直方图
开发语言·学习·算法·matlab
仰泳之鹅10 小时前
【C语言】自定义数据类型2——联合体与枚举
c语言·开发语言·算法
于小猿Sup11 小时前
VMware在Ubuntu22.04驱动Livox Mid360s
linux·c++·嵌入式硬件·自动驾驶
x_yeyue12 小时前
三角形数
笔记·算法·数论·组合数学
Mr. zhihao13 小时前
深入解析redis基本数据结构
数据结构·数据库·redis
念何架构之路13 小时前
Go语言加密算法
数据结构·算法·哈希算法
AI科技星13 小时前
《数学公理体系·第三部·数术几何》(2026 年版)
c语言·开发语言·线性代数·算法·矩阵·量子计算·agi
小小编程路13 小时前
C++ 多线程与并发
java·jvm·c++
失去的青春---夕阳下的奔跑13 小时前
560. 和为 K 的子数组
数据结构·算法·leetcode
黎阳之光14 小时前
黎阳之光:以视频孪生重构智慧医院信息化,打造高标项目核心竞争力
大数据·人工智能·物联网·算法·数字孪生