蓝桥 密码脱落 (菜到哭)

简介: 蓝桥 密码脱落 (菜到哭)

题目描述
X星球的考古学家发现了一批古代留下来的密码。
这些密码是由A、B、C、D 四种植物的种子串成的序列。
仔细分析发现,这些密码串当初应该是前后对称的(也就是我们说的镜像串)。
由于年代久远,其中许多种子脱落了,因而可能会失去镜像的特征。

你的任务是:
给定一个现在看到的密码串,计算一下从当初的状态,它要至少脱落多少个种子,才可能会变成现在的样子
输入
输入一行,表示现在看到的密码串(长度不大于1000)
输出
要求输出一个正整数,表示至少脱落了多少个种子。
样例输入
ABCBA
样例输出
0

一开始想的是从前后向中间找,找到一个不一样的就加1,但是不行。
比如说CABDAC,如果按照上面这种方法结果是2,而实际上最少结果是1.

看了zmgg的博客,求正反两个的最长公共子序列,然后补上n-len个字母就可以了。

这里主要记录一下scanf的%s还可以str+1这么用,以及strlen也可以这么用,长见识了。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;

char str1[1005], str2[1005];
int dp[1005][1005];
int main(){
   
    scanf("%s", str1+1);
    strcpy(str2, str1);
    int len=strlen(str1+1);
    for (int i=1; i<=len; i++)
        str2[i]=str1[len-i+1];
    for (int i=1; i<=len; i++){
   
        for (int j=1; j<=len; j++){
   
            if (str1[i]==str2[j]){
   
                dp[i][j]=dp[i-1][j-1]+1;
            }else{
   
                dp[i][j]=max(dp[i-1][j], dp[i][j-1]);
            }
        }
    }
    printf("%d\n", len-dp[len][len]);
    return 0;
}
相关文章
|
Cloud Native 前端开发 Go
【刷题日记】804. 唯一摩尔斯密码词
本次刷题日记的第 29 篇,力扣题为:804. 唯一摩尔斯密码词 ,简单
|
机器学习/深度学习 数据采集 数据挖掘
【每周一坑】矩阵旋转
给定一个 N * N 的矩阵(N >= 0),将其顺时针旋转 90°.输出处理之后的矩阵。
|
数据采集 数据挖掘 Python
【每周一坑】田忌赛马
如果你是某公子手下的谋士,已知同级别中己方的马优于田忌的马,事先不知道对方派遣顺序,不过可以根据上一轮对方的派出的马匹制定本轮的选择。为公子制定一种派遣策略,使赢得比赛的几率最大。
|
机器学习/深度学习 算法
种类并查集(蓝桥侦探)
种类并查集(蓝桥侦探)
|
缓存
Leetcode 上的小偷太难了!!
Leetcode 上的小偷太难了!!
112 0
Leetcode 上的小偷太难了!!
|
算法 搜索推荐
对于蓝桥你不得不知的应试技巧
本文适用于蓝桥杯算法比赛赛前使用
290 0
对于蓝桥你不得不知的应试技巧
伤心者
凄凄岁暮风,翳翳经日雪。 哀生之须臾,羡蛤之无穷。 遇旷烁古今之作,心神为之吸引。 遂引书而坐,俯首细看。 文名“伤心者”,意为悲苦凄凉之人。 作者名“何夕”,引自“人生不相见,动如参与商。
998 0