# Time:  O(1)
# Space: O(1)

class Solution(object):
    def nextClosestTime(self, time):
        """
        :type time: str
        :rtype: str
        """
        h, m = time.split(":")
        curr = int(h) * 60 + int(m)
        result = None
        for i in xrange(curr+1, curr+1441):
            t = i % 1440
            h, m = t // 60, t % 60
            result = "%02d:%02d" % (h, m)
            if set(result) <= set(time):
                break
        return result

@@ -22,16 +22,805 @@
 : O(1)%0A%0A
+# Given a time represented in the format %22HH:MM%22,%0A# form the next closest time by reusing the current digits.%0A# There is no limit on how many times a digit can be reused.%0A#%0A# You may assume the given input string is always valid.%0A# For example, %2201:34%22, %2212:09%22 are all valid. %221:34%22, %2212:9%22 are all invalid.%0A#%0A# Example 1:%0A#%0A# Input: %2219:34%22%0A# Output: %2219:39%22%0A# Explanation: The next closest time choosing from digits 1, 9, 3, 4, is 19:39, which occurs 5 minutes later.%0A# It is not 19:33, because this occurs 23 hours and 59 minutes later.%0A#%0A# Example 2:%0A#%0A# Input: %2223:59%22%0A# Output: %2222:22%22%0A# Explanation: The next closest time choosing from digits 2, 3, 5, 9, is 22:22.%0A# It may be assumed that the returned time is next day's time since it is smaller than the input time numerically.%0A%0A
 class So

Update next-closest-time.py