[DoorDash面试题] - 饭店开门关门时间

news/2024/11/8 16:56:42/

题目描述

给定一个开门和关门时间,格式为“mon 11:22 am”,计算出在这段时间之内所有以5mins为单元的时间列表。

没找到Leetcode原题,应该是一道doordash改编题。

题目链接

https://www.1point3acres.com/bbs/thread-828828-1-1.html

题目思路

基本套路就是先处理时间,将“hh:mm”转化为分钟,起始时间:5-(总分钟%5) + 总分钟;终止时间:总分钟 - (5-(总分钟%5))。

然后将这个区间内所有5mins为单位的时间找出,列入最终结果即可。

public static List<String> getAllTimes(String[] times) {HashMap<String, Integer> week = new HashMap<>();String[] wstr = {"mon", "tue", "wed", "thu", "fri", "sat", "sun"};for (int i=0; i<wstr.length; i++) {week.put(wstr[i], i+1);}// process timesString[] time1 = times[0].split(" ");int w1 = week.get(time1[0]);String[] t1 = time1[1].split(":");int h1 = Integer.parseInt(t1[0]);int m1 = Integer.parseInt(t1[1]);boolean isMorn1 = time1[2].equals("am");if (isMorn1 && h1==12) h1 = 0;if (!isMorn1 && h1!=12) h1+=12;String[] time2 = times[1].split(" ");int w2 = week.get(time2[0]);String[] t2 = time2[1].split(":");int h2 = Integer.parseInt(t2[0]);int m2 = Integer.parseInt(t2[1]);boolean isMorn2 = time2[2].equals("am");if (isMorn2 && h2==12) h2 = 0;if (!isMorn2 && h2!=12) h2+=12;// check start point and endpointint st = h1*60 + m1;int ed = h2*60 + m2;int r1 = 5 - (st%5) + st;int r2 = ed - (5 - (ed%5));//List<String> res = new ArrayList<>();add(res, w1, st, ed);return res;}private static void add(List<String> res, int week, Integer st, Integer ed) {if (st != null && ed == null) {for (int i = st; i<24*60; i++) {if (i%5!=0) continue;String th = i/60<10? "0"+i/60: ""+i/60;String tm = i%60<10? "0"+i%60: ""+i%60;String tmp = "" + week + th + tm;res.add(tmp);}} else if (st == null && ed != null) {for (int i = 0; i<=ed; i++) {if (i%5!=0) continue;String th = i/60<10? "0"+i/60: ""+i/60;String tm = i%60<10? "0"+i%60: ""+i%60;String tmp = "" + week + th + tm;res.add(tmp);}} else if (st == null && ed == null) {for (int i=0; i<24*60; i++) {if (i%5!=0) continue;String th = i/60<10? "0"+i/60: ""+i/60;String tm = i%60<10? "0"+i%60: ""+i%60;String tmp = "" + week + th + tm;res.add(tmp);}} else if (st != null && ed != null) {for (int i=st; i<ed; i++) {if (i%5!=0) continue;String th = i/60<10? "0"+i/60: ""+i/60;String tm = i%60<10? "0"+i%60: ""+i%60;String tmp = "" + week + th + tm;res.add(tmp);}}}

 


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

相关文章

淘宝开网店,卖网站靠谱吗?

我想自己在淘宝开个网店,主要做网站建设业务包括(域名注册、主机租用)等,大家觉得靠谱吗&#xff1f;不想给别人打工(总觉得没动力/不想受约束)&#xff0c;目前在二线城市&#xff0c;技术基本学不到&#xff0c;全靠自学&#xff0c;工资也不如意。13年开始打算做&#xff0c…

淘宝老店新开有什么优势 淘宝老店弊端有哪些

现在的人们似乎都有开网店的经历&#xff0c;不同的是有的一直坚持&#xff0c;有的人中途放弃&#xff0c;还有一类人那就是放弃之后又想开店的&#xff0c;这就涉及到了一个老店新开的问题了&#xff0c;今天我们主要来讨论淘宝老店新开好吗? 老店新开 我们先来看看老店新开…

淘宝开网店提高店铺转化率的28原则

经过长时间的准备&#xff0c;我们将店铺装修得漂漂亮亮的&#xff0c;照片拍的美美的&#xff0c;宝贝也可以正常在售了。可是算开好淘宝店铺了吗&#xff1f;如果单单是这样&#xff0c;那么几乎大多数人不费吹灰之力就可以做到。这个不是我们的核心竞争力&#xff0c;我们真…

弘辽淘宝开网店找货源如何防骗子

弘辽淘宝开网店找货源如何防骗子&#xff1f;弘辽淘宝开网店找货源如何防骗子&#xff1f;弘辽淘宝开网店找货源如何防骗子&#xff1f; 如今网络这么发达&#xff0c;应该有不少的朋友在网上寻找货源了。如何防止在网络进货中被骗就是大家关心的问题了。现总结了几条&#xf…

新手怎么开网店?如何做好淘宝店?

有着这么一句话一直在淘宝商家们之间流传着&#xff0c;那就是十个做淘宝九个失败&#xff0c;其中的原因是什么呢&#xff1f;现在很多人看中了淘宝的市场&#xff0c;所以现在有很多人加入到这个淘宝平台之中&#xff0c;但是由于新手没有什么经验所以很多人都在开店过程中失…

弘辽科技:商家开店的过程中常犯违规汇总。

淘宝作为国内最大的电商平台之一&#xff0c;它拥有数百万的卖家&#xff0c;产品更是数不胜数。为了维护平台的正常运营&#xff0c;平台方制定了大量的规则&#xff0c;卖家如果违反平台规则&#xff0c;会被平台处以相应处罚。 根据违反规则的不同&#xff0c;处罚有降权、删…

扬帆牧哲:怎样开网店创业?

很多新手小白都注册了网店&#xff0c;但接下来完全不知道该怎么办&#xff0c;一脸懵逼。今天&#xff0c;扬帆牧哲就跟大家聊一聊。首先&#xff0c;在开网店之前&#xff0c;问问自己是否真的想进入电商行业&#xff0c;准备以什么样的心态做电商。 如果你想认真做好网店&am…

创建淘宝网店

主要是身份认证&#xff0c;而且大部分都在移动端进行。 如支付宝app 钱盾app 现在移动端web仿佛要一步步取代PC端 开好后没有出售的东西