【华为OD机试】1028 - 密码截取

news/2024/11/14 14:48:58/

文章目录

    • 一、题目
      • 🔸题目描述
      • 🔸输入输出
      • 🔸样例1
      • 🔸样例2
      • 🔸样例3
    • 二、代码参考
  • 作者:KJ.JK


🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈
 
🍂个人博客首页: KJ.JK
 
💖系列专栏:华为OD机试(Java&Python&C语言)

一、题目


🔸题目描述

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


🔸输入输出

输入
输入一个字符串(字符串的长度不超过2500)
 
输出
返回有效密码串的最大长度


🔸样例1

输入
ABBA输出
4

🔸样例2

输入
ABBBA输出
5

🔸样例3

输入
12HHHHA输出
4

二、代码参考

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;public class Main {public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String s = "";while ((s = br.readLine()) != null) {System.out.println(validLen(s));}br.close();}public static int validLen(String s) {int len = s.length();// 状态:对比的两个字符索引起始和终止索引位置// 定义: 字符串s的i到j字符组成的子串是否为回文子串boolean[][] dp = new boolean[len][len];int res = 0;// base casefor(int i = 0; i < len - 1; i++) {dp[i][i] = true;}for(int r = 1; r < len; r++) {for(int l = 0; l < r; l++) {// 状态转移:如果左右两字符相等,同时[l+1...r-1]范围内的字符是回文子串// 则 [l...r] 也是回文子串if(s.charAt(l) == s.charAt(r) && (r-l <= 2 || dp[l+1][r-1])) {dp[l][r] = true;// 不断更新最大长度res = Math.max(res, r - l + 1);} }}return res;}
}--------------------------------------------------------str = input()
n = len(str)
list = []
for i in range(0,n-1):for j in range(1,n):if str[j] == str[i] and str[i+1:j] == str[j-1:i:-1]:list.append(len(str[i:j+1]))
print(max(list))--------------------------------------------------------------#include <stdio.h>
#include <string.h>//颠倒后比较最长字段 XXX
//中心遍历
//增加遍历指针low high是遍历更加简洁
int main()
{char str[3000];scanf("%s", str);int len = strlen(str);int max[len][2];for (int i = 0; i < len; i++){int low, high;//以i为中心奇数串low = i - 1, high = i + 1;max[i][0] = 1;while (low >= 0 && high < len && str[low] == str[high]){low--;high++;max[i][0] += 2;}//以i为中心偶数串low = i, high = i + 1;max[i][1] = 0;while (low >= 0 && high < len && str[low] == str[high]){low--;high++;max[i][1] += 2;}}int maxlen = 0;for (int i = 0; i < len; i++){for (int j = 0; j < 2; j++){if (max[i][j] > maxlen)maxlen = max[i][j];}}printf("%d", maxlen);return 0;
}

请添加图片描述


作者:KJ.JK

文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习


http://www.ppmy.cn/news/746446.html

相关文章

绕过手机锁屏

进入fastboot模式&#xff0c;刷入recovery fastboot flash recovery twrp-3.0.2-0-hammerhead.img 然后进入recovery 进入后再用adb命令可以看见所有的文件目录 进入data/system目录下 可以看见以“ .key”结尾的文件 全部删除 作者&#xff1a;峰峰小 链接&#xff1…

华为机试 简单密码

题目描述 密码是我们生活中非常重要的东东&#xff0c;我们的那么一点不能说的秘密就全靠它了。哇哈哈. 接下来渊子要在密码之上再加一套密码&#xff0c;虽然简单但也安全。 假设渊子原来一个BBS上的密码为zvbo9441987,为了方便记忆&#xff0c;他通过一种算法把这个密码变换…

华为机试HJ32:密码截取

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 题目描述&#xff1a; 该题目是一道密码加密题&#xff0c;密码混合在复杂字符串中&#xff0c;是一个对称子字符串&#xff0c…

【云原生|Kubernetes】12-容器生命周期的回调(PreStart和PreStop)

【云原生|Kubernetes】12-容器生命周期的回调&#xff08;PreStart和PreStop&#xff09; 文章目录 【云原生|Kubernetes】12-容器生命周期的回调&#xff08;PreStart和PreStop&#xff09;简介回调函数回调处理程序的实现回调处理程序执行调试回调函数 为容器的生命周期事件设…

【LeetCode周赛】2022上半年题目精选集——思维题

文章目录 2211. 统计道路上的碰撞次数&#xff08;栈 || 脑筋急转弯&#xff09;解法1&#xff1a;自己想的——使用栈解法2——思维&#xff1a;去掉左右两边往左右开的车代码写法1——找左右端点代码写法2——正则表达式去除流处理api补充&#xff1a;replaceAll() 和 正则表…

pcm5102a解码芯片音质评测_配备独立解码芯片 性能旗舰iQOO Pro音质再Hi-Fi

今天&#xff0c;iQOO官方微博再次发布态度海报&#xff1a;“Hi-Fi是玄学还是科学&#xff1f;”表明iQOO Pro将成为iQOO家族首款采用独立解码芯片的手机&#xff0c;这也就意味着&#xff0c;iQOO Pro的音质表现也会是iQOO系列产品中最好的一款。环顾众多手机厂商纷纷取消3.5…

详解低延时高音质:声音的美化与空间音效篇

本篇是「详解低延时高音质系列」的第四篇技术分享。我们在高音质的基础上&#xff0c;聊聊如何定义好的声音&#xff0c;空间音效是怎样的原理&#xff0c;以及如何在实时场景下利用软件算法实现声音美化、空间音效。最后还有一些音频场景相关的小 Demo&#xff0c;大家可以自行…

哪款蓝牙耳机音质最好?千元级别音质最好的蓝牙耳机

当下市面上最流行的蓝牙耳机款式当属真无线蓝牙耳机了&#xff0c;随着AirPods的风潮的引领&#xff0c;各大手机商、影音品牌也相继也出了真无线蓝牙耳机款式。作为一个蓝牙耳机爱好者也接触了很多蓝牙耳机&#xff0c;今天就给大家推荐几款佩戴舒适&#xff0c;性能比较好的蓝…