题目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;

}

相关推荐
小肝一下1 天前
每日两道力扣,day5
数据结构·c++·算法·leetcode·职场和发展·hot100
jiang_changsheng1 天前
亚马逊的2026年最新算法变革自然流量分发机制“文本匹配”到“多模态意图理解”的范式革命
大数据·算法·推荐算法
OOJO1 天前
c++---list介绍
c语言·开发语言·数据结构·c++·算法·list
别或许1 天前
1、高数----函数极限与连续(知识总结)
算法
田梓燊1 天前
code 560
数据结构·算法·哈希算法
笨笨饿1 天前
29_Z变换在工程中的实际意义
c语言·开发语言·人工智能·单片机·mcu·算法·机器人
kobesdu1 天前
综合强度信息的激光雷达去拖尾算法解析和源码实现
算法·机器人·ros·slam·激光雷达
weixin_413063211 天前
记录 MeshFlow-Online-Video-Stabilization 在线稳像
算法·meshflow·实时防抖
会编程的土豆1 天前
【数据结构与算法】动态规划
数据结构·c++·算法·leetcode·代理模式
炘爚1 天前
深入解析printf缓冲区与fork进程复制机制
linux·运维·算法