题目:
输入数据n(n>=6)代表n个数,从0-9任意输入n个数,然后在n个数选出6个数xx-xx-xx表示 时:分:秒,求出最小时间和最大时间,若时间无效,则输出时间无效,例如:
输入: 6 6 5 4 3 2 1 输出: 12:34:56 23:56:41输入:
6 999999 输出: 时间无效
import randomdef 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, maxddef 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 nmin_max_date(10)
其实最小值也可按求最大值方式取,客户们自己动手吧