把时间当成字符串来处理,分析每一个位置字符串可能出现的情况。 每一个字符串的格式都是完全相同的,从左到右依次分析: 记字符串的初始位置为 0。那么判断一个时间是否合法,需要考虑的位置只有第 0、1、3 和 6 位。例如:case = ['1', '9', ':', '0', '0', ':', '2', '3'] 先来看小时 (0 位置和 1 位置): 小时的第一位只能是 0,1 或 2 case[0] 只能取 0,1,2 (合法直接跳过); 在小时第一位为 0 或 1 时,小时的第 2 位可以为 [0..9] case[0] 属于 [0..1] 时,case[1] 可以取 [0..9]...