密码脱落【蓝桥杯】
作者:互联网
问题描述
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