华为机试---字符串运用-密码截取

原创 2016年05月30日 22:44:26

题目描述

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



输入描述:

输入一个字符串


输出描述:

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


输入例子:
ABBA

输出例子:
4

import java.util.Scanner;


public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
while (scan.hasNext()) {
String str = scan.nextLine();
int max = getMaxLength(str);
System.out.println(max);
}//endwhile
scan.close();
}
/**
* 寻找最大回文字符串,返回它的长度
* 算法思想:定义两个下标标记位(low,high),low从前往后遍历,high从后往前遍历              
* */
private static int getMaxLength(String str){
int max_length = 0;
int str_length = str.length();
int low = 0;
int high = 0;
for(int i = 0 ; i < str_length - 1; i++){
for(int j = str_length - 1 ; j > i ; j--){
low = i;
high = j;
if(str.charAt(low) == str.charAt(high)){
while(str.charAt(low + 1) == str.charAt(high - 1)){
low++;
high--;
if(low > high){
if(max_length < j - i + 1){
max_length = j - i + 1;
}
break;
}
}//endwhile
}//endif
}//endfor_j
}//endfor_i
return max_length;
}
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

华为机试:统计每个月兔子的总数、 字符串运用-密码截取

1.统计每个月兔子的总数 题目描述 有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?       /**...

【华为机试】字符串运用-密码截取

题目描述 Catcher 是MCA国的情报员,他工作时发现敌国会用一些对称的密码进行通信,比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解。...

华为机试在线训练-牛客网(20)【中级】字符串运用-密码截取

题目描述 Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码进行通信,比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解。...

华为机试:简单密码破解、字符串通配符

1.简单密码破解 题目描述 密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了。哇哈哈. 接下来渊子要在密码之上再加一套密码,虽然简单但也安全。 假设渊子原来一个BBS上的密码...

【华为机试】按字节截取字符串

题目描述 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF"6,应该输出为"我AB...

华为机试: 按字节截取字符串、超长正整数相加

1.按字节截取字符串 题目描述 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉D...

华为机试在线训练-牛客网(12)密码验证合格程序

题目描述 密码要求:       1.长度超过8位       2.包括大小写字母.数字.其它符号,以上四种至少三种     ...

[华为机试练习题]4.简单密码破解

题目描述: 密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了。哇哈哈. 接下来渊子要在密码之上再加一套密码,虽然简单但也安全。假设渊子原来一个BBS上的密码为zvbo944198...

Java - 华为机试训练 - 简单密码破解

时间限制:1秒空间限制:32768K 本题知识点: 字符串  算法知识视频讲解 题目描述 密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了。哇哈哈. 接下来渊子要在密码之...

牛客网_华为机试_021_简单密码破解(字符映射)

题目描述 密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了。哇哈哈. 接下来渊子要在密码之上再加一套密码,虽然简单但也安全。   假设渊子原来一个BBS上...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)