输入为 HH:MM
格式表示的时间a,要求返回用组成时间a的数字组成的,a之后第一个时间b,可以重复使用数字,比a小的b被认为是第二天的时间。
思路:
利用 python 的 set
结构,获得组成时间的全部数字,并且不断对时间进行 +1 操作,直到遇到第一个组成数字是时间a的组成数字子集的时间b。一天只有 24 * 60
分钟因此程序运行时间可以保证。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| class Solution(object): def nextClosestTime(self, time): """ :type time: str :rtype: str """ digits = set(time) while True: time = self.nextMinute(time) if set(time) <= digits: return time
def nextMinute(self, time): h, m = map(int, time.split(':')) carry, m = divmod(m + 1, 60) h = (h + carry) % 24 return "{:02d}:{:02d}".format(h, m)
|