问题描述
让我们来看看原题是怎么说的:在输入的一个字符串中包含年份信息,正确年份信息表示为年份-月份,其中年份在1979到2019之中,月份表示为01,02...11,12。请找出正确年份的第一个数字的位置。如输入1993dec12342019-1216.应输出12.因为2的位置就是12。
解决方案
了解到题目后,要知道体中的关键信息,抓出正确年份出现的第一标准,也就是“-”,然后在判断“-”前后年月份是否符合要求。
(1)分析题目后,就编程具体实施。首先肯定是找到字符串中的“-”,所以采用for来遍历。
(2)找到“-”之后,在截取字符串中“-”前的四个数字,判断其是否在1979到2019之间。
(3)然后截取“-”惠普的两位数字判断其是否在01,,,12中。
(4)最后直接输出满足所有条件的年份的第一个数字的位置。否则输出-1.
实施代码:
str = input() list1 = [x for x in range(1979,2020)] list2 = ['01','02','03','04','05','06','07','08','09','10','11','12'] for i in str: if i == '-': a = str.index(i) b = int(''.join(str[a-4:a])) c = ''.join(str[a+1:a+3]) if b in list1 and c in list2: print(a-3) else: print(-1) |