发现网上找到的代码全是错的,而且没有java版本,以免大家再被错误代码误导,特此写一个正确的版本贴上来。

题目

警察在侦破一个案件时,得到了线人给出的可能犯罪时间,形如 “HH:MM” 表示的时刻。
根据警察和线人的约定,为了隐蔽,该时间是修改过的,解密规则为:利用当前出现过的数字,构造下一个距离当前时间最近的时刻,则该时间为可能的犯罪时间。每个出现数字都可以被无限次使用。"

示例

20:12得到20:20
23:59得到22:22
12:58得到15:11
18:52得到18:55
23:52得到23:53
09:17得到09:19
07:08得到08:00

package algorithm;import java.util.ArrayList;
import java.util.Comparator;/*** @BelongsProject: LeetCode* @BelongsPackage: algorithm* @Author: tongyuan* @CreateTime: 2022-01-20 01:29* @Description:*/
public class NextTime {public static String fun(String time) {char[] chars = time.toCharArray();//单个数字listArrayList<Integer> nums = new ArrayList<>();for (char c : chars) {if (c != ':') {nums.add(c - '0');}}String[] split = time.split(":");//小时Integer H = Integer.parseInt(split[0]);//分钟Integer M = Integer.parseInt(split[1]);ArrayList<Integer> list = new ArrayList<>();for (int i : nums) {for (int j : nums) {if (i <= 5) {list.add(i * 10 + j);}}}//备选项排序,既可当H,也可以当Mlist.sort(Comparator.comparing(o -> o));//仅仅改变分钟就能得到最近的值for (int i : list) {if (i <= M) {continue;}//12:13 -> 12:31return format(H + ":" + i);}//小时数在23以下,可以使用最近的小时数if (H != 23) {for (int i : list) {if (i <= H) {continue;}//确保i的合法性if (i<=23){//12:59 ->15:11return format(i + ":" + list.get(0));}}}//无法改别最近的小时与分钟。如23:59,00:00,15:15return format(list.get(0) + ":" + list.get(0));}public static String format(String time) {String[] split = time.split(":");String H = split[0];String M = split[1];H = H.length() == 2 ? H : "0" + H;M = M.length() == 2 ? M : "0" + M;return H + ":" + M;}public static void main(String[] args) {System.out.println("20:12" + "得到" + fun("20:12"));System.out.println("23:59" + "得到" + fun("23:59"));System.out.println("12:58" + "得到" + fun("12:58"));System.out.println("18:52" + "得到" + fun("18:52"));System.out.println("23:52" + "得到" + fun("23:52"));System.out.println("09:17" + "得到" + fun("09:17"));System.out.println("07:08" + "得到" + fun("07:08"));System.out.println("22:59" + "得到" + fun("22:59"));System.out.println("22:39" + "得到" + fun("22:39"));
//        20:12得到20:20
//        23:59得到22:22
//        12:58得到15:11
//        18:52得到18:55
//        23:52得到23:53
//        09:17得到09:19
//        07:08得到08:00
//        22:59得到22:22
//        22:39得到23:22}
}

解密犯罪时间JAVA相关推荐

  1. 【华为OD机试真题 JAVA】解密犯罪时间

    JS版:[华为OD机试真题 JS]解密犯罪时间 标题:解密犯罪时间 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限 警察在侦破一个案件时,得到了线人给出的可能犯罪时间,形如 &q ...

  2. 前端使用CryptoJS的AES解密,Java后端加密实现

    前端使用CryptoJS的AES解密,Java后端加密实现.CryptoJS的AES输出使用的是openssl格式,所以处理起来有一些不一样,详细代码如下: import org.bouncycast ...

  3. AES加密解密(java、web、app)

    AES加密解密(java.web.app) AES加密解密(java.web.app) java端 Web端 ios端 AES加密解密(java.web.app) java端 package com. ...

  4. delphi7aes加密解密与java互转_惊呆了!不改一行Java代码竟然就能轻松解决敏感信息加解密|原创

    前言 出于安全考虑,现需要将数据库的中敏感信息加密存储到数据库中,但是正常业务交互还是需要使用明文数据,所以查询返回我们还需要经过相应的解密才能返回给调用方. ❝ ps:日常开发中,我们要有一定的安全 ...

  5. AES加密解密算法Java实现

    AES加密算法是密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DE ...

  6. DES加密解密算法Java实现

    DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大小.这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半.使用子密钥对其中一半应 ...

  7. 微信小程序数据拼接_微信小程序用户数据解密算法Java版

    打开官方文档,开心~ 腾讯爸爸竟然给提供了解密算法 然而我下载解压后人傻了 可能鹅厂没养Java程序猿吧 那就看这C++改造吧 public class AnthCodeVerify { privat ...

  8. mysql aes java解密_加密/解密的Java函數,如Mysql的AES_ENCRYPT和AES_DECRYPT

    1 If you need the code to decrypt the algorithm is here JAVA 如果你需要代碼解密算法就在這里JAVA public static Strin ...

  9. delphi7aes加密解密与java互转_Java 加密/解密Excel

    概述 设置excel文件保护时,通常可选择对整个工作簿进行加密保护,打开文件时需要输入密码:或者对指定工作表进行加密,即设置表格内容只读,无法对工作表进行编辑.另外,也可以对工作表特定区域设置保护,即 ...

最新文章

  1. 尤雨溪创立 Vue.js 的心路历程纪录片
  2. pythonenumapi_Python调用windows API实现屏幕截图
  3. 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 12—Support Vector Machines 支持向量机...
  4. [数据库] Navicat for MySQL换种思维解决插入同时更新数据
  5. python调用c 接口_python调用C接口
  6. CMS sell in customizing
  7. iOS 11.3 显示:Apple ID 或将实现微信式扫码登陆
  8. 计算机操作员技术工作总结,计算机操作员工作总结
  9. android log4j日志管理的使用
  10. android 类似按键精灵脚本_android软件。按键精灵或者脚本精灵都可以,录制脚本可以设置播放次数的最好了。...
  11. galaxy s8 android pc,【三星GALAXYS8评测】DeX套件替代PC办公环境_三星 GALAXY S8_手机评测-中关村在线...
  12. CDA I级学习 - CDA I级考试大纲
  13. Java美颜相机(1)图像处理
  14. AntD Pro Footer自定义
  15. DDD,这东西到底是垃圾还是银弹?
  16. IT项目经理成长手记学习(一)
  17. 中国的地理位置的表述
  18. PHP RGB图片模式转换CMYK模式图片
  19. 图像压缩编码——香农/哈夫曼编码
  20. 三十二楼层选几层最好_楼层风水几楼最好 1一32高楼层选最佳楼层

热门文章

  1. Mac - Spotlight(聚焦)
  2. 如何看待互联网组织的“扁平化趋势”?
  3. 纸牌游戏-----小猫钓鱼
  4. r library car_R语言之重复测量方差分析——ezANOVA的使用与解析
  5. mac idea 常用快捷键总结
  6. JCJC错别字检测新功能:检测日期格式
  7. Windows下的Telnet
  8. 分布式消息系统 Kafka 简介
  9. 华为无线路由器显示无服务器,华为无线路由器怎么设置 WiFi路由器的设置方法...
  10. 【神经网络】tensorflow实验10 -- 人工神经网络(1)