牛客网--字符串运用:密码截取(Java)

题目描述

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

 

输入描述:

 

输入一个字符串

输出描述:

 

返回有效密码串的最大长度

示例1

输入

复制

ABBA

输出

复制

4

方法一:动态规划 ,可能超时

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
        String x = sc.nextLine();
        int dp[][] = new int[x.length()+1][x.length()+1];
        String y = new StringBuilder(x).reverse().toString();
        int max=0;
        for(int i=1;i<=x.length();i++){
            for(int j=1;j<=y.length();j++){
                if(x.charAt(i-1)==y.charAt(j-1)){
                    dp[i][j] = dp[i-1][j-1]+1;
                }else{
                    dp[i][j] = 0;
                }
                if(max<dp[i][j]) {
                    max = dp[i][j];
                }
            }
           
        }
        System.out.println(max);
        }
        sc.close();
    }
}

方法二:中心扩展法

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
        String x = sc.nextLine();
        int max=0;
        int low,high;
        for(int i=1;i<x.length()-1;i++) {
            low = i-1;high=i;
            while(low>=0&&high<x.length()&&x.charAt(low)==x.charAt(high)) {
                low--;
                high++;
            }
            max = Math.max(max,high-low-1);//序列总数为偶数,中心两个
            low = i-1;high=i+1;
            while(low>=0&&high<x.length()&&x.charAt(low)==x.charAt(high)) {
                low--;
                high++;
            }
            max = Math.max(max,high-low-1);//序列总数为奇数,中心一个
        }
        System.out.println(max);
        }
        sc.close();
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485026.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于HotSpot VM以及Java语言的动态编译 你可能想知道这些

目录 1 HotSpot VM的历史2 HotSpot VM 概述2.1 编译器2.2 解释器2.3 解释型语言 VS 编译型语言3 动态编译3.1 什么是动态编译3.2 HotSpot VM对字节码的处理方式3.3 为什么不静态编译1 HotSpot VM的历史 SUN/Oracle JDK中使用的JVM是HotSpot VM. SUN JDK从1.3.1版本开始采用HotS…

马斯克向中国保证

来源&#xff1a;金融时报美国当地时间3月20日&#xff0c;特斯拉公司&#xff08;Tesla Inc.&#xff09;首席执行官埃隆马斯克 &#xff08;Elon Musk&#xff09;通过网络参加中国发展高层论坛会议。马斯克在会议上表示&#xff0c;特斯拉公司将不会向美国政府提供其车辆在中…

牛客网--整数与IP地址间的转换

题目描述 原理&#xff1a;ip地址的每段可以看成是一个0-255的整数&#xff0c;把每段拆分成一个二进制形式组合起来&#xff0c;然后把这个二进制数转变成 一个长整数。 举例&#xff1a;一个ip地址为10.0.3.193 每段数字 相对应的二进制数 10 …

给VBox中的linux添加虚拟硬盘(扩容)

通过virtualbox的设置添加虚拟硬盘 点击添加虚拟硬盘&#xff0c;新建虚拟硬盘虚拟硬盘分区 启动系统&#xff0c;打开终端&#xff0c;切换到root用户 . 输入fdisk -l 回车&#xff0c;会看到新增的硬盘, 一般为/dev/sdb . 输入fdisk /dev/sdb 回车 . 输入n 回车&#xff0c;创…

对抗攻击层出不穷?神经科学带来新突破、导出智能统一框架,Hinton:我早有洞见

来源 &#xff1a;AI科技评论编译 &#xff1a;bluemin校对 &#xff1a;青暮最近的神经科学研究指出了如何击败对抗性示例&#xff0c;并为实现更具弹性、一致性和灵活性的人工智能指明了道路。对抗性示例是当今深度学习研究的热点。数据中微妙的&#xff0c;通常是无形的更改…

索引的概念

索引是定义在存储表&#xff08;Table&#xff09;的基础之上&#xff0c;有助于无需检查所有记录而快速定位所需记录的一种辅助存储机构&#xff0c;由一系列存储在磁盘上的索引项&#xff08;index entries&#xff09;组成&#xff0c;每一索引项又由两部分构成:索引字段和行…

牛客网--蛇形矩阵(Java)

题目描述 题目说明 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。 样例输入 5 样例输出 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 接口说明 原型 void GetResult(int Num, char * pResult); 输入参数&#xff1a; int Num&#xff1a;输入的正整数N 输出…

增强现实系统的三大关键技术是什么?

来源&#xff1a;VR村增强现实系统的主要任务是进行真实世界和虚拟物体的无缝融合&#xff0c;需要解决真实场景和虚拟物体的合成一致性问题。为了确保真实世界和虚拟对象的无缝融合&#xff0c;根据Ronald Azuma对增强现实技术的定义&#xff0c;在AR应用系统开发中必须要解决…

牛客网--称砝码

题目描述 现有一组砝码&#xff0c;重量互不相等&#xff0c;分别为m1,m2,m3…mn&#xff1b; 每种砝码对应的数量为x1,x2,x3...xn。现在要用这些砝码去称物体的重量(放在同一侧)&#xff0c;问能称出多少种不同的重量。 注&#xff1a; 称重重量包括0 方法原型&#xff1a;p…

51 Nod 1116 K进制下的大数

1116 K进制下的大数 基准时间限制&#xff1a;1 秒 空间限制&#xff1a;131072 KB 分值: 20 难度&#xff1a;3级算法题 收藏 关注 有一个字符串S&#xff0c;记录了一个大数&#xff0c;但不知这个大数是多少进制的&#xff0c;只知道这个数在K进制下是K - 1的倍数。现在由你…

数字化?智能化?中国企业智能制造现状究竟如何 李炳积 工信头条 昨天

来源&#xff1a;先进制造业各国智能制造现状30年来&#xff0c;在智能制造领域&#xff0c;各国从早期侧重于智能设计的数值模型和离线模型&#xff0c;发展到以智能制造过程优化为目标在线智能系统&#xff0c;从传统行业进军新兴行业。欧美技术基础较好&#xff0c;对高端技…

浅谈接口自动化测试

昨晚在某个测试交流群&#xff0c;听了一个测试老司机分享接口自动化测试的内容&#xff0c;对接口自动化有了更深的一些认识&#xff0c;也为接下来公司的接口自动化实施&#xff0c;提供了更多的思路。 这篇博客&#xff0c;就说说功能测试到接口自动化的进阶&#xff0c;以及…

Leetcode--1248. 统计「优美子数组」(java)

给你一个整数数组 nums 和一个整数 k。 如果某个 连续 子数组中恰好有 k 个奇数数字&#xff0c;我们就认为这个子数组是「优美子数组」。 请返回这个数组中「优美子数组」的数目。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,2,1,1], k 3 输出&#xff1a;2 解释&…

2021年MEMS传感器产业链变化与趋势

来源&#xff1a;宸元资本一MEMS基本概念和相关产业政策MEMS基本概念微机电系统&#xff08;MEMS, Micro-Electro-Mechanical System&#xff09;&#xff0c;也叫做微电子机械系统、微系统、微机械等&#xff0c;指尺寸在几毫米乃至更小的高科技装置。微机电系统其内部结构一般…

python基础之流程控制

python流程控制 python的流程控制跟大多数的语言一样&#xff0c;包括if条件语句、for循环语句、while循环语句&#xff1b;跳出循环continue&#xff0c;break等 写在前面 python中的运算 1&#xff09;算数运算 以下假设变量&#xff1a;a10&#xff0c;b20&#xff1a; 2&am…

【剑指offer】面试题38:字符串的排列(Java)

输入一个字符串&#xff0c;打印出该字符串中字符的所有排列。 你可以以任意顺序返回这个字符串数组&#xff0c;但里面不能有重复元素。 示例: 输入&#xff1a;s "abc" 输出&#xff1a;["abc","acb","bac","bca","…

从自动驾驶汽车开始,机器学习开始与物理世界交互

大数据文摘出品来源&#xff1a;Wired编译&#xff1a;王烨今天&#xff0c;有许多人工智能与我们互动的例子&#xff0c;使我们的生活的效率更高。智能体向我们通过电子商务网站向我们推荐产品&#xff0c;通过社交媒体为我们推荐新闻&#xff0c;通过交友应用向我们推荐朋友&…

Leetcode--全排列(Java)

给定一个 没有重复 数字的序列&#xff0c;返回其所有可能的全排列。 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 代码&#xff1a; class Solution { public List<List<Integer>> permute(int[] nums)…

突破!在人工染色体中存储图片和视频:天津大学元英进团队验证DNA数据存储新方法...

来源&#xff1a;中国生物技术网天津大学元英进教授团队从头编码设计合成了一条长度为254,886 bp、专用于数据存储的酵母人工染色体&#xff0c;借助无线通信中前沿的纠错编码将两张经典图片和一段视频存储于高效组装的人造染色体&#xff0c;利用酵母繁殖实现了数据稳定复制&a…

10分钟 在linux里创建.net core helloworld控制台程序

官方教程 安装linux https://www.cnblogs.com/LittleFeiHu/p/9749455.html 第一步 &#xff1a;选择和你本机适用的Linux版本&#xff0c;我这里用的是18.04. 第二步 &#xff1a;注册秘钥&#xff0c;产品仓储&#xff0c;以及安装依赖项&#xff0c;每台机器只需要注册一次&a…