第 36 题:最大非连续子序列
题目描述:给你一个整数 list L, 如 L=[2,-3,3,50], 求 L 的一个非连续子序列,使其和最大,
输出最大子序列的和。
这里非连续子序列的定义是,子序列中任意相邻的两个数在原序列里都不相邻。
例如,对于 L=[2,-3,3,50], 输出 52(分析:很明显,该列表最大非连续子序列为[2,50]).
示例:
输入:L = [2, -3, 3, 50]
输出:52
>>> L = [2, -3, 3, 50] >>> max([sum(k) for k in [L[i:][::j] for i in range(len(L)) for j in range(2,len(L))]]) 52 >>> # 分开展示: >>> [L[i:][::j] for i in range(len(L)) for j in range(2,len(L))] [[2, 3], [2, 50], [-3, 50], [-3], [3], [3], [50], [50]] >>> [sum(k) for k in [L[i:][::j] for i in range(len(L)) for j in range(2,len(L))]] [5, 52, 47, -3, 3, 3, 50, 50] >>> K = [L[i:][::j] for i in range(len(L)) for j in range(2,len(L))] >>> [sum(k) for k in K] [5, 52, 47, -3, 3, 3, 50, 50] >>> max([sum(k) for k in K]) 52 >>>
注:此方法如果L元素较多,且间隔可不全等分组时结果并不准确
============================================================
第 37 题:简单题之勾股定理
题目描述:给你直角三角形的两个直角边的边长 a,b,请你求出其斜边边长,结果保留小数点
后三位小数。
如 a=3, b =4, 则输出 5.000。
示例:
输入:a = 3.0 , b = 4.0
输出:5.000
>>> a,b=3.0,4.0 >>> print('%.3f'%((a**2+b**2)**0.5)) 5.000 >>>
============================================================
第 38 题:简单题之列表转换
题目描述:给你一个字符串列表L,请用一行代码将列表所有元素拼接成一个字符串并输出。
如 L=['abc','d','efg'], 则输出 abcdefg。
示例:
输入:L = ["abc", "d", "efg"]
输出:abcdefg
1. >>> L = ["abc", "d", "efg"] 2. >>> print(''.join(L)) 3. abcdefg
============================================================
第 39 题:简单题之输出格式练习
题目描述:给你一个字符串列表 L,用一行代码顺序输出 L 中的元素,元素之间以一个空格
隔开,注意行尾不要有空格,输出单独占一行。
如 L=['abc','d','efg'], 则输出 abc d efg。
示例:
输入:L = ["abc", "d", "efg"]
输出:abc d efg
1. >>> L = ["abc", "d", "efg"] 2. >>> print(' '.join(L)) 3. abc d efg
============================================================
第 40 题:整数解
题目描述:给你两个整数 a 和 b(-10000<a,b<10000),请你判断是否存在两个整数,他们的
和为 a,乘积为 b。
若存在,输出 Yes,否则输出 No
例如:a=9,b=15, 此时不存在两个整数满足上述条件,所以应该输出 No。
示例:
输入:a = 9 ,b = 15
输出:No
>>> def func(a,b): '''即求 x²-ax+b=0 是否存在整数解''' if a*a<4*b:return "No" for i in range(-10000,10001): if i*i-a*i+b==0:return "Yes" else: return "No" >>> func(9,15) 'No' >>> func(12,5) 'No' >>> func(0,2) 'No' >>> func(0,-4) 'Yes' >>> func(7,6) 'Yes' >>> func(7,12) 'Yes' >>>