题目内容:
给定一个列表alist,alist由一些正整数(代表长度)组成,返回由alist中的三个长度组成的有效三角形的最大周长。如果所有的长度组合都不能构成有效三角形,则返回 0。
输入格式:
共一行,列表中的元素以空格隔开。
输出格式:
共一行,为一个非负整数,是最大三角形的周长
输入样例:
2 1 2
输出样例:
5
My answer
思路一:
lst = list(map(int, input().split()))
def select(lst):
tmax = 0
for i in range(len(lst)):
for j in range(i + 1, len(lst)):
for k in range(j + 1, len(lst)):
tri = sorted([lst[i], lst[j], lst[k]])
if tri[0] + tri[i] > tri[2] and sum(tri) > tmax:
tmax = sum(tri)
return tmax
print(select(lst))
思路二:
alist = list(map(int, input().split()))
alist.sort()
while len(alist) >= 3:
a = alist.pop()
if a < alist[-1] + alist[-2]:
print(a + alist[-1] + alist[-2])
break
else:
print(0)