蓝桥 密码脱落 (菜到哭)

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

题目描述
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;
}
相关文章
|
8月前
|
算法 C++
小唐蓝桥的做题心得
小唐蓝桥的做题心得
|
8月前
|
Linux 定位技术 iOS开发
【Python实现坦克大战,带你找回童年的快乐】附源码
【Python实现坦克大战,带你找回童年的快乐】附源码
210 0
|
算法 数据安全/隐私保护 C语言
LeetCode每日一题2299. 强密码检验器 II
本题是一道LeetCode上的简单题,使用了模拟、位运算两种方法解题,各位看官往下看。
74 0
|
Windows
写文章狗屁不通,怎么办?跪求高人指点!
写文章狗屁不通,怎么办?跪求高人指点!
197 0
写文章狗屁不通,怎么办?跪求高人指点!
|
机器学习/深度学习 算法
种类并查集(蓝桥侦探)
种类并查集(蓝桥侦探)
|
编解码 程序员 数据安全/隐私保护
没错,我是高端吃瓜玩家(搞懂摩斯密码)
在电气时代刚流行的时代,并没有电话手机,人们探索的第一步是如何用电去传讯消息,在这期间摩尔斯发明了电报并且获得了专利,并且他的团队(有说是他的助手艾尔菲德·维尔发明的摩尔斯电码)配套发明了一套传输的规则被称为摩尔斯电码。
752 0
没错,我是高端吃瓜玩家(搞懂摩斯密码)
|
数据安全/隐私保护 小程序 开发工具
拜托,不用记密码真的超酷好吗?
mPaaS 小程序 IDE 更新,新增免密登录模式
418 0
拜托,不用记密码真的超酷好吗?
|
算法 搜索推荐
对于蓝桥你不得不知的应试技巧
本文适用于蓝桥杯算法比赛赛前使用
319 0
对于蓝桥你不得不知的应试技巧