其他分享
首页 > 其他分享> > 密码脱落【蓝桥杯】

密码脱落【蓝桥杯】

作者:互联网

问题描述
X星球的考古学家发现了一批古代留下来的密码。

这些密码是由A、B、C、D 四种植物的种子串成的序列。

仔细分析发现,这些密码串当初应该是前后对称的(也就是我们说的镜像串)。

由于年代久远,其中许多种子脱落了,因而可能会失去镜像的特征。

你的任务是:给定一个现在看到的密码串,计算一下从当初的状态,它要至少脱落多少个种子,才可能会变成现在的样子。

输入格式
共一行,包含一个由大写字母ABCD构成的字符串,表示现在看到的密码串。

输出格式
输出一个整数,表示至少脱落了多少个种子。

输入样例1
ABCBA

输出样例1
0

输入样例2
ABDCDCBABC

输出样例2
3

考点:递归/求最长公共子序列

package pastExamPaper;

import java.util.Scanner;

/*
    密码脱落(递归/求最长公共子序列)
 */
public class Demo73 {
    private static int ans;
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        f(s,0,s.length()-1);
        System.out.println(ans);
    }

    private static void f(String s, int p, int q) {
        if ( p >= q ) return;

        if (s.charAt(p) == s.charAt(q)){
            f(s,p+1,q-1);
        }
        if (s.charAt(p) != s.charAt(q)){
            ans++;
            f(s,p,q-1);
        }

    }

}

标签:charAt,样例,脱落,蓝桥,密码,static,Scanner
来源: https://blog.csdn.net/dangzefei/article/details/123633945