蓝桥杯-密码脱落

来源:互联网 发布:免备案免费域名 编辑:程序博客网 时间:2024/04/20 11:08

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

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

输入一行,表示现在看到的密码串(长度不大于1000)
要求输出一个正整数,表示至少脱落了多少个种子。

例如,输入:
ABCBA
则程序应该输出:
0

再例如,输入:
ABECDCBABC
则程序应该输出:
3

资源约定:
峰值内存消耗 < 256M
CPU消耗 < 1000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

package 二〇一七年三月十八日;import java.util.Scanner;public class _1010密码脱落 {    public static void main(String[] args) {        Scanner s=new Scanner(System.in);        char[] arr = s.nextLine().toCharArray();        int N = f(arr, 0, arr.length-1);        System.out.println(N);    }    public static int f(char[] arr, int start, int len) {        if(start>len){            return 0;        }        if (arr[start] == arr[len]) {            return f(arr, start + 1, len - 1);        } else {                                            return Math.min(f(arr,start+1,len)+1, f(arr,start,len-1)+1);        //+1是代表执行else时已经不相等了;所以+1是代表当前掉落的叶子        }    }}