PythonTip(36~40)题详解

来源:互联网 发布:matlab r2013a mac 编辑:程序博客网 时间:2024/05/16 04:48

题目36:最大非连续子序列

描述:给你一个整数list L, 如 L=[2,-3,3,50], 求L的一个非连续子序列,使其和最大,输出最大子序列的和。
这里非连续子序列的定义是,子序列中任意相邻的两个数在原序列里都不相邻。
例如,对于L=[2,-3,3,50], 输出52(分析:很明显,该列表最大非连续子序列为[2,50]).

答案:与上题一样,用线性时间做

L = [0, 0] + Ln = len(L)dp = [0] * nfor i in xrange(2, n):    dp[i] = max(dp[i-2]+L[i], dp[i-1])print dp[n-1]

题目37:简单题之勾股定理

描述:给你直角三角形的两个直角边的边长a,b,请你求出其斜边边长,结果保留小数点后三位小数。
如a=3, b =4, 则输出5.000。

答案:这个比较好做

import mathx = math.sqrt(a**2 + b**2)print "%.3f"%(x)

题目38:简单题之列表转换

描述:给你一个字符串列表L,请用一行代码将列表所有元素拼接成一个字符串并输出。
如L=[‘abc’,’d’,’efg’], 则输出abcdefg。

答案:

print "".join(list(L))

题目39:简单题之输出格式练习

描述:给你一个字符串列表L,用一行代码顺序输出L中的元素,元素之间以一个空格隔开,注意行尾不要有空格,输出单独占一行。
如L=[‘abc’,’d’,’efg’], 则输出abc d efg。

答案:没什么好分析的,与上题类似。

print " ".join(L)

题目40:整数解

描述:给你两个整数a和b,请你判断是否存在两个整数,他们的和为a,乘积为b。10000<a,b<10000

1 0
原创粉丝点击