#OD314. 解密犯罪时间

题目描述

警察在侦破一个案件时,得到了线人给出的可能犯罪时间,形如 “HH:MM” 表示的时刻。

根据警察和线人的约定,为了隐蔽,该时间是修改过的,

解密规则为:利用当前出现过的数字,构造下一个距离当前时间最近的时刻,则该时间为可能的犯罪时间。

每个出现数字都可以被无限次使用。

输入描述

形如HH:SS字符串,表示原始输入。

输出描述

形如HH:SS的字符串,表示推理处理的犯罪时间。

备注

1.可以保证现任给定的字符串一定是合法的。

例如,“01:35”和“11:08”是合法的,“1:35”和“11:8”是不合法的。

2.最近的时刻可能在第二天。

用例

输入输出
20:1220:20
23:5922:22
12:5815:11
18:5218:55
23:5223:53
09:1709:19
07:0808:00

#include <algorithm>
#include <string>
#include <iostream>
#include <set>
using namespace std;

int main() {
	string str;
	cin >> str;
	int pos = str.find(':');
	if (pos > 0){
		str.erase(pos, 1);
	}

	set<string> set; //去重和排序
	for (auto c1:str)
	{
		if (c1 > '2')
			continue;
		for (auto c2 : str)
		{
			if (c1 == '2' && c2 > '3')
				continue;
			for (auto c3 : str)
			{
				if (c3 > '5')
					continue;
				for (auto c4 : str){
					string s;
					s.push_back(c1);
					s.push_back(c2);
					s.push_back(c3);
					s.push_back(c4);
					set.insert(s);
				}
			}
		}
	}

	//查找下一个
	string result;
	auto it = set.find(str);
	if (++it != set.end()){
		result = *it;
	}
	else {
		result = *(set.begin());
	}

	cout << result.substr(0, 2) << ":" << result.substr(2, 2) << endl;
	system("pause");
	return 0;
}

用例评测通过率100%.

当然也可以用正则表达式来判断时间格式是否合法。

下面是从网上搜索到的某位大佬的解法:

using namespace std;
 
regex pattern("(([01][0-9])|([2][0-3]))[0-5][0-9]");
 
void dfs(vector<char> &arr, const string &path, vector<string> &res) {
    if (path.size() == 4) {
        if (regex_match(path, pattern)) {
            res.emplace_back(path);
        }
 
        return;
    }
 
    for (const auto &c: arr) {
        dfs(arr, path + c, res);
    }
}
 
int main() {
    string s;
    cin >> s;
 
    string hour = s.substr(0, 2);
    string minute = s.substr(3, 2);
 
    set<char> charSet;
    for (const auto &c: hour) {
        charSet.insert(c);
    }
 
    for (const auto &c: minute) {
        charSet.insert(c);
    }
 
    vector<char> charArr;
    for (const auto &c: charSet) {
        charArr.emplace_back(c);
    }
 
    vector<string> res;
    dfs(charArr, "", res);
 
    sort(res.begin(), res.end());
 
    string curTime = hour + minute;
 
    int i = 0;
    for (; i < res.size(); i++) {
        if (res[i] == curTime) {
            break;
        }
    }
 
    string ans;
    if (i == res.size() - 1) {
        ans = res[0];
    } else {
        ans = res[i + 1];
    }
 
    cout << ans.substr(0, 2) << ":" << ans.substr(2) << endl;
 
    return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WebSocket基础知识

WebSocket是什么&#xff1f; WebSocket 是一种网络通信协议&#xff0c;它提供了全双工通信机制&#xff0c;允许服务器主动向客户端发送消息&#xff0c;而不仅限于响应客户端的请求。它使用类似于 HTTP 的握手来建立连接&#xff0c;然后使用单独的持久连接来进行通信。这种…

上海计算机学会2023年9月月赛C++丙组T2Z形填充

题目描述 给定一个整数 n&#xff0c;再给定 n2 个字符&#xff0c;请将这些字符以 z 形排成一个 nn 的矩阵。 z 形的定义是&#xff0c;第一个字符在左上角&#xff0c;然后沿对角线以 z 形放置字符。对于 n4 &#xff0c;z 形排列的先后顺序标记如下&#xff1a; 输入格式 …

用友GRPA++Cloud任意文件读取

文章目录 免责声明漏洞描述漏洞原理影响版本漏洞复现修复建议 免责声明 文章只供交流与学习&#xff0c;切莫做违法犯罪的事情 漏洞描述 用友 GRP-ACloud 政府财务云产品是以政府会计准则和预算管理一体化规范为基准&#xff0c;服务于政府行政事业单位&#xff0c;落实国家…

高标准农田建设项目天空地一体化智慧监管平台

一、建设背景 党中央、国务院高度重视高标准农田建设。国务院办公厅印发的《关于切实加强高标准农田建设提升国家粮食安全保障能力的意见》 明确提出&#xff0c;大力推进高标准农田建设&#xff0c;到2022年&#xff0c;建成10亿亩高标准农田&#xff0c;以此稳定保障1万亿斤以…

科技查新中化工领域查新点如何确立与提炼?案例讲解!

我国化工科技查新工作始于1985年&#xff0c;至今经历了30多年的发展。化工类课题包含化工、炼油、 冶金、能源、轻工、石化、环境、医药、环保和军工等&#xff0c; 具有物质种类繁多、制备工艺复杂等特点。因此&#xff0c;本文结合化工查新项目实例&#xff0c;总结提高化工…

同步时序电路的设计方法

同步时序电路的设计方法 基本步骤 分析举例 【例1】 设计一个按自然态序变化的 同步七进制加法计数器&#xff0c;计数规则为逢七进一&#xff0c;产生一个进位输出 【解】 Step1&#xff1a;建立原始状态转换图 Step2&#xff1a;状态化简 没有能够合并的等效状态&#…

成为一名算法工程师需要掌握哪些技术栈

成为算法工程师需要学习的编程技能主要包括以下几个方面&#xff1a; Python&#xff1a;Python是算法工程师最常使用的编程语言之一。它拥有简洁易读的语法和丰富的库&#xff0c;如NumPy、Pandas、SciPy、Matplotlib等&#xff0c;这些库为数据处理、科学计算和可视化提供了…

红帽为 Red Hat OpenShift AI 扩大与 Elasticsearch 向量数据库的合作

作者&#xff1a;来自 Elastic Aditya Tripathi 红帽和 Elastic 今天宣布开展合作&#xff0c;以便在 Red Hat OpenShift AI 上集成 Elasticsearch 向量数据库。 Red Hat OpenShift 用户现在可以通过红帽生态系统目录实施 Elasticsearch 以进行向量搜索和检索增强生成 (RAG) 应…

iOS--runloop的初步认识

runloop的初步认识 简单认识runloopEvent looprunloop其实就是个对象NSRunloop和CFRunLoopRef的依赖关系runloop与线程runloop moderunloop sourceCFRunLoopSourceCFRunLoopObserverCFRunLoopTimer runloop的实现runloop的获取添加ModeCFRunLoopAddCommonMode 添加Run Loop Sou…

万能门店小程序开发平台功能源码系统 带完整的安装代码包以及安装搭建教程

互联网技术的迅猛发展和用户对于便捷性需求的不断提高&#xff0c;小程序以其轻量、快捷、无需安装的特点&#xff0c;成为了众多商家和开发者关注的焦点。为满足广大商家对于门店线上化、智能化管理的需求&#xff0c;小编给大家分享一款“万能门店小程序开发平台功能源码系统…

14.跳跃游戏Ⅱ

文章目录 题目简介题目解答解法一&#xff1a;贪心算法动态规划代码&#xff1a;复杂度分析&#xff1a; 题目链接 大家好&#xff0c;我是晓星航。今天为大家带来的是 跳跃游戏Ⅱ 相关的讲解&#xff01;&#x1f600; 题目简介 题目解答 解法一&#xff1a;贪心算法动态规划…

el-select下拉框 添加 el-checkbox 多选框,支持全选、取消全选

el-select下拉框 添加 el-checkbox 多选框&#xff0c;支持全选、取消全选 前言一、实现思路二、实现代码1.模板代码2. css 样式3.js 代码 DEMO 演示总结 前言 实现效果预览 提示&#xff1a;本内容基于element-ui 组件实现&#xff0c;如果使用其他组件库、可参考下面实现方…

QML 本地存储(Setting,sqlite)

Qt hello - 专注于Qt的技术分享平台 QML 原生的储存方有两种&#xff1a; 1&#xff0c;Settings 跟QWidget 中的QSettings 一样&#xff0c;可以简单的存储一些配置。 2&#xff0c;Sqlite sqlite数据库。可以存储一些复杂的数据。 一&#xff0c;Settings 我们以一个按钮的位…

ROS2 conda 环境下报 No module named ‘catkin_pkg‘

这里使用的环境是&#xff1a;Ubuntu 22.04, ROS2, Conda python 虚拟环境是3.10 ~/.bashrc 里注释掉 conda&#xff0c;并添加 export PYTHONPATH$PYTHONPATH:/usr/lib/python3/dist-packages sudo gedit ~/.bashrc source ~/.bashrc

算法day04

第一题 &#xff1a; 209. 长度最小的子数组 有上题可知&#xff0c;我们会采用双指针和单调性的思路来解决 我们本题采用左右双指针从数组的0位置同向前进&#xff0c;所以将此类模型称为滑块&#xff1b; 步骤思路如下&#xff1a; 步骤一&#xff1a; 定义所有双指针都指向…

时间选择框选择月份后生成选择月份的第一天以及下一个月份的第一天

const onChange e > {const date e ? new Date(e.$d) : new Date()// 获取年份和月份const year date.getFullYear()let month date.getMonth() 1// 格式化月份&#xff0c;确保为两位数字month month < 9 ? 0 month : month// 计算结束年份和月份const endMont…

泥水位监测站的应用场景

TH-SW2泥水位监测站的应用场景相当广泛&#xff0c;包括但不限于以下几种情况&#xff1a; 水源地保护&#xff1a;它可以监测水源地的水质及水位变化&#xff0c;为水源地的保护提供实时数据支持&#xff0c;防止水源污染和过度开采。水库管理&#xff1a;在水库中&#xff0…

从诊室到云端:医疗大模型的应用挑战与未来探索

从诊室到云端&#xff1a;医疗大模型的应用挑战与未来探索 2023年是中国医疗大模型发展的元年&#xff0c;各种医疗大模型已广泛应用于临床辅助决策、医学研究、健康管理等多个场景。未来&#xff0c;医疗大模型有望实现多模态AI与医疗实践全流程的深入链接&#xff0c;应用于医…

【MySQL 数据宝典】【事务锁】- 002 事务控制的演进

一、事务处理思路 1.1 排队 排队处理是事务管理最简单的方法&#xff0c;就是完全顺序执行所有事务的数据库操作&#xff0c;不需要加锁&#xff0c;简单的说就是全局排队。序列化执行所有的事务单元&#xff0c;数据库某个时刻只处理一个事务操作&#xff0c;特点是强一致性…

xhci 寄存器学习

xhci 寄存器介绍 查看linux 代码&#xff1a; 1733 /* There is one xhci_hcd structure per controller */ 1734 struct xhci_hcd { 1735 struct usb_hcd *main_hcd; 1736 struct usb_hcd *shared_hcd; 1737 /* glue to PCI and HCD framework */ 1738 stru…