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
6 5 4 3 2 1
output:
12:34:56 23:56:41
Input:
6
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.