• 字符串的使用


    Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码进行通信,比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解。比如进行下列变化 ABBA->12ABBA,ABA->ABAKK,123321->51233214 。因为截获的串太长了,而且存在多种可能的情况(abaaab可看作是aba,或baaab的加密形式),Cathcer的工作量实在是太大了,他只能向电脑高手求助,你能帮Catcher找出最长的有效密码串吗?

    输入描述:
    输入一个字符串

    输出描述:
    返回有效密码串的最大长度

    示例1
    输入
    ABBA
    输出
    4

    解析:把输入的字符串分为2种情况处理,偶数个的时候第一次处理是挨着的,奇数个的时候第一次处理是中间隔一个的,然后循环向前。

    代码:

    package com.dragon.school.daniel.controller;
    
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    
    public class Test4444 {
        public static void main(String[] args) throws Exception {
    
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            String line;
            while ((line = br.readLine()) != null) {
                int max = 1;
                char[] xx = line.toCharArray();
                int len = xx.length;
                if (len == 0) {
                    System.out.println(0);
                } else {
                    for (int i = 1; i < len - max / 2; i++) {
                        System.out.println("i<:"+(len - max / 2));
                        int low = i - 1, high = i;
                        while (low >= 0 && high < len && xx[low] == xx[high]) {
                            low--;
                            high++;
                            System.out.println("A:"+low+","+high);
                        }
                        if (high - low - 1 > max) {
                            max = high - low - 1;
                        }
    
                        low = i - 1;
                        high = i + 1;
                        while (low >= 0 && high < len && xx[low] == xx[high]) {
                            low--;
                            high++;
                            System.out.println("B:"+low+","+high);
                        }
                        if (high - low - 1 > max) {
                            max = high - low - 1;
                        }
                    }
                }
                System.out.println(max);
            }
    
        }
    }
    
  • 相关阅读:
    数据库出现中文乱码解决方法
    OO第四次博客作业
    OO第三次博客作业
    OO第二次博客作业
    OO前三次作业反思
    mybatis怎么自动生成实体类,Mapper配置文件和Dao接口
    Win7+VS2013初试Thrift
    静态链接库与动态链接库
    排序算法总结
    TCP/IP协议详解
  • 原文地址:https://www.cnblogs.com/InternetJava/p/12543216.html
Copyright © 2020-2023  润新知