你是Microteque的一名员工,这是一家硅谷领先的初创公司,为各种奇怪的地方创造智能微波炉。你的顾客可以得到印有图案的微波炉,以配合他们的厨房、露营者、男人洞穴;甚至大型国家设施的厨房也有闪亮的新品牌微波炉。
由于微波控制板技术的尖端特性,你最终不得不使用编程语言MicrowaveX*,你正在研究如何编程时间计数器。你的柜台看起来是这样的:

您的目标是编写一个程序,该程序占用输入时间并将其转换为微波运行所需的秒数。
作为输入,函数必须采用##:##格式的字符串(包括位置3处的冒号)并返回一个整数。
请注意,它还应该能够处理超过60秒的秒插槽。
最后,由于一些烦人的规定,你不能让你的微波炉运行超过100分钟(6,000秒)。
抽样输入和产出:
01:30 ->90秒
00:66 -> 66秒
01:99 -> 159秒
02:39 -> 159秒
99:99 -> 6,000秒(由于上述规定,上限为100分钟)
*:MicrowaveX碰巧与你所选择的编程语言相同,但Microteque将其重新命名为听起来对投资者更有吸引力。
发布于 2020-05-19 16:45:14
s=>Math.min(6e3,+([m]=s.split`:`)[1]+m*60)s => // s = input string
Math.min( // return the minimum of ...
6e3, // ... 6000 and the following result ...
+( // coerce to integer:
[m] = // store into m the number of minutes
s.split`:` // which is the first term of the array obtained
// by splitting s on ':'
)[1] + // yield the seconds (2nd term of the above array)
m * 60 // and add the seconds multiplied by 60
) // end of Math.min()发布于 2020-05-19 19:52:21
@set/ps=
@cmd/cset/a"(s=%s::=*60+%)+(s-=6000)*(-s>>13)获取STDIN的输入。说明:%s::=*60+%在输入中以*60+代替:,从而生成一个将时间转换为秒的算术表达式。因为Batch没有最小函数,所以我必须通过右移产生0或-1的差值来计算这个值,然后用来调整秒数,然后由于使用cmd/c而自动输出。
https://codegolf.stackexchange.com/questions/204969
复制相似问题