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

代码思路

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

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

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

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

#include<iostream>

#include<string>

#include<cstring>

#include<algorithm>

using namespace std;

int dp10021002;//表示s的前i个字符和r的前j个字符的LCS长度

string s;//原始字符串

char r1002;//存放反转后的字符串

int k;

int main(){

cin>>s;

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

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

rk++=si;

}

//求最长公共子序列

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

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

if(si-1==rj-1){

dpij=dpi-1j-1+1;

}else{

dpij=max(dpi-1j,dpij-1);

}

}

}

cout<<s.length()-dps.length()strlen(r)<<endl;

return 0;

}

相关推荐
地平线开发者3 小时前
J6B vio scenario sample
算法
BothSavage15 小时前
Trae远程开发中DeepSeek自定义模型4054错误的排查与修复
算法
小林ixn15 小时前
从暴力到KMP:一道题彻底搞懂字符串匹配的前世今生
算法
烬羽17 小时前
字符串算法入门:从反转字符串到回文判断,面试不再慌
算法·面试
郝学胜_神的一滴17 小时前
CMake 034:生成器表达式:解耦构建时序、精简分支逻辑的终极利器
c++·cmake
先吃饱再说1 天前
判断回文字符串,从一行代码到双指针优化
算法
见过夏天1 天前
C++ 基础入门完全指南
c++
黄敬峰1 天前
深入理解算法核心:从递归思想、数组扁平化到快速排序
算法