Enter n numbers to find the maximum and minimum time

topic:

Input data n (n>=6) represents n numbers, input n numbers arbitrarily from 0-9, and then select 6 numbers xx-xx-xx from the n numbers to represent hours: minutes: seconds, and find the minimum time and the maximum time, if the time is invalid, the output time is invalid, for example: 
input: 

6 5 4 3 2 1 
output: 
12:34:56 23:56:41

Input: 

999999 
Output: 
invalid time

 

import random


def min_max_date(n):
    if n < 6:
        return "valid n"
    nums = []
    for i in range(n):
        nums.append(int(random.random() * 10))

    mind = min_date(nums)
    maxd = max_date(nums)

    print mind, maxd


def min_date(nums):
    nums = sorted(nums)

    print nums

    if nums[0] > 2:
        return "valid date"

    if nums[1] > 3:
        return "valid date"

    h_1 = nums[0]
    h_2 = nums[1]

    nums = nums[2:]

    if nums[0] > 5:
        return "valid date"

    m_1 = nums[0]

    nums = nums[1:]

    if nums[1] > 5:
        m_2 = nums[1]
        nums.pop(1)
    else:
        m_2 = nums[0]
        nums.pop(0)

    if nums[0] > 5:
        return "valid date"

    s_1 = nums[0]
    s_2 = nums[1]

    return "%s%s:%s%s:%s%s" % (h_1, h_2, m_1, m_2, s_1, s_2)


def max_date(nums):
    h_1 = gen(0, 2, nums)
    if h_1 is None:
        return "valid date"

    h_2 = gen(0, 3, nums)
    if h_2 is None:
        return "valid date"

    m_1 = gen(0, 5, nums)
    if m_1 is None:
        return "valid date"

    m_2 = gen(0, 9, nums)
    if m_2 is None:
        return "valid date"

    s_1 = gen(0, 5, nums)
    if s_1 is None:
        return "valid date"

    s_2 = gen(0, 9, nums)
    if s_2 is None:
        return "valid date"

    return "%s%s:%s%s:%s%s" % (h_1, h_2, m_1, m_2, s_1, s_2)


def gen(s, e, nums):
    n = None
    for i in range(len(nums)):
        num = nums[i]
        if s <= num <= e:
            n = num
        else:
            nums.pop(i - 1)
            break
    return n


min_max_date(10)

In fact, the minimum value can also be taken according to the method of seeking the maximum value. Customers can do it by themselves.

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325474108&siteId=291194637