字节青训-小C的外卖超时判断、小C的排列询问

news/2024/11/18 16:14:45/

目录

一、小C的外卖超时判断

问题描述

测试样例

 解题思路:

问题理解

数据结构选择

算法步骤

最终代码:

 运行结果:

二、小C的排列询问

问题描述

测试样例

最终代码:

运行结果: 

 ​编辑

 


一、小C的外卖超时判断

问题描述

小C点了一个外卖,并且急切地等待着骑手的送达。她想知道她的外卖是否超时了。

已知小C在时刻 t1 点了外卖,外卖平台上显示的预计送达时间为 t2,而实际送达时间为 t3。需要判断外卖是否超时。如果外卖超时,则输出 "Yes";否则输出 "No"

t3 在 t2 之后则认定为超时。

实际送达时间与预计送达时间在 2 小时之内。


测试样例

示例 1:

输入:t1 = "18:00", t2 = "19:05", t3 = "19:05"
输出:"No"

示例 2:

输入:t1 = "23:00", t2 = "00:21", t3 = "00:23"
输出:"Yes"

示例 3:

输入:t1 = "23:05", t2 = "00:05", t3 = "23:58"
输出:"No"

 解题思路:

问题理解

我们需要判断外卖是否超时。具体来说,如果实际送达时间 t3 在预计送达时间 t2 之后,则认定为超时。

数据结构选择

由于输入的时间是字符串格式(例如 "18:00"),我们需要将这些时间转换为可以比较的格式。一种常见的方法是将时间转换为分钟数(从当天的00:00开始计算)。

算法步骤

  1. 解析时间字符串:将 t1t2t3 解析为小时和分钟。
  2. 转换为分钟数:将小时和分钟转换为从当天00:00开始的分钟数。
  3. 比较时间:比较 t3 和 t2 的分钟数。如果 t3 大于 t2,则输出 "Yes",否则输出 "No"

最终代码:

#include <iostream>
#include <string>using namespace std;std::string solution(const std::string& t1, const std::string& t2, const std::string& t3) {// 解析时间字符串int t1_hour = std::stoi(t1.substr(0, 2));int t1_minute = std::stoi(t1.substr(3, 2));int t2_hour = std::stoi(t2.substr(0, 2));int t2_minute = std::stoi(t2.substr(3, 2));int t3_hour = std::stoi(t3.substr(0, 2));int t3_minute = std::stoi(t3.substr(3, 2));// 转换为分钟数int t1_minutes = t1_hour * 60 + t1_minute;int t2_minutes = t2_hour * 60 + t2_minute;int t3_minutes = t3_hour * 60 + t3_minute;// 处理跨天情况if (t2_minutes < t1_minutes) {t2_minutes += 24 * 60; // 加上一天的分钟数}if (t3_minutes < t1_minutes) {t3_minutes += 24 * 60; // 加上一天的分钟数}// 计算时间差int t2_diff = t2_minutes - t1_minutes;int t3_diff = t3_minutes - t1_minutes;// 比较时间差if (t3_diff <= t2_diff) {return "No";} else {return "Yes";}
}int main() {std::cout << (solution("18:00", "19:05", "19:05") == "No") << std::endl;std::cout << (solution("23:00", "00:21", "00:23") == "Yes") << std::endl;std::cout << (solution("23:05", "00:05", "23:58") == "No") << std::endl;return 0;
}

 运行结果:

二、小C的排列询问

问题描述

小C拿到了一个排列,她想知道在这个排列中,元素 xx 和 yy 是否是相邻的。排列是一个长度为 nn 的数组,其中每个数字从 11 到 nn 恰好出现一次。

你的任务是判断在给定的排列中,xx 和 yy 是否是相邻的。


测试样例

样例1:

输入:n = 4, a = [1, 4, 2, 3], x = 2, y = 4
输出:True

样例2:

输入:n = 5, a = [3, 4, 5, 1, 2], x = 3, y = 2
输出:False

样例3:

输入:n = 6, a = [6, 1, 5, 2, 4, 3], x = 5, y = 2
输出:True

最终代码:

#include <iostream>
#include <vector>
using namespace std;bool solution(int n, vector<int> a, int x, int y) {// 遍历数组for (int i = 0; i < n - 1; i++) {// 检查当前元素和下一个元素是否分别是 x 和 y,或者 y 和 xif ((a[i] == x && a[i + 1] == y) || (a[i] == y && a[i + 1] == x)) {return true;}}// 如果没有找到相邻的 x 和 y,返回 falsereturn false;
}int main() {cout << (solution(4, {1, 4, 2, 3}, 2, 4) == true) << endl;cout << (solution(5, {3, 4, 5, 1, 2}, 3, 2) == false) << endl;cout << (solution(6, {6, 1, 5, 2, 4, 3}, 5, 2) == true) << endl;return 0;
}

运行结果: 

 


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

相关文章

css实现斜条纹背景

最近有个模块需求采用斜条纹背景 做标头背景 记录下实现代码 <template><div class"striped-background"><span>货种</span><span>企业数</span><span>企业数</span><span>客户数</span></div> …

交互新体验:Axure动态面板下的图片拖动技巧

交互新体验&#xff1a;Axure动态面板下的图片拖动技巧 前言 在数字产品的设计过程中&#xff0c;用户体验的每一个细节都至关重要。 动态交互效果&#xff0c;如拖动按钮控制图片展示区域&#xff0c;不仅能够提升用户的参与度&#xff0c;还能增强界面的直观性和互动性。 …

Rust 语言学习笔记(三)

引用与解除引用 觉得还是有必要继续深入学习一下 Rust 再练手&#xff0c;毕竟仍然看到 & 和 * 符号还有些恍惚&#xff0c;大概就是 C/C 里的取地址和取值操作吧&#xff0c;实际上也确实类似。只是叫法略有不同, 还有就是在 C/C 多用了指针的概念。 在 C/C 中&#xff…

CentOS网络配置

上一篇文章&#xff1a;VMware Workstation安装Centos系统 在CentOS系统中进行网络配置是确保系统能够顺畅接入网络的重要步骤。本文将详细介绍如何配置静态IP地址、网关、DNS等关键网络参数&#xff0c;以帮助需要的人快速掌握CentOS网络配置的基本方法和技巧。通过遵循本文的…

【java】链表:判断链表是否成环

问题&#xff1a; 分析&#xff1a; 这里我们还是定义快慢双指针 。 如果有环&#xff0c;快慢指针一定会相遇。 // 构建成环链表public void makeCircle(){Node node1new Node(1);Node node2new Node(2);Node node3new Node(5);Node node4new Node(6);Node node5new …

WSL2安装Ubuntu22.04并开启GPU进行ML学习教程

文章目录 一 启用 WSL2二、安装 Ubuntu三 安装 NVIDIA GPU 驱动和 CUDA 工具四、安装pytouch运行环境 这几天一直在研究下&#xff0c;怎么在笔记本win11电脑上安装linux系统用于机器学习、深度学习、大模型等相关的研究&#xff0c;前面试了VMWARE、HYPER-V等方式&#xff0c;…

重构代码之删除对参数的赋值

删除对参数的赋值 是一种重构技术&#xff0c;旨在消除对方法参数的重新赋值。这种实践可以增强代码的可读性和维护性&#xff0c;避免潜在的副作用。以下是详细讲解&#xff1a; 一、动机 保护参数的意图&#xff1a;方法参数通常表示传入数据或状态。如果重新赋值&#xff…

[BSidesCF 2019]SVGMagic

打开题目 给了提示&#xff0c;使用魔法将svg转换成png&#xff0c;搜索了一下svg 是一种XML标记语言&#xff0c;既然是XML&#xff0c;就可能存在XXE漏洞 构造一个XML外部实体注入&#xff08;XXE&#xff09;攻击&#xff0c;尝试一下 <!ENTITY file SYSTEM "file…