iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 27
2
Software Development

活用python- 路遙知碼力,日久練成精系列 第 27

Day27- python題目解析-找山峰位置

昨日課後練習討論

首先公佈一下昨天課後練習的解答(昨日題目傳送門在此),
等式FORTY+TEN+TEN=SIXTY只有一組解:
29786 + 850 + 850 = 31486
暴力搜索0~9所有排列的範例程式如下:

from itertools import permutations
def tToN(Tuple):
    return int(''.join(map(str,Tuple)))
def check(Tuple):
    return tToN(Tuple[:5])+tToN(Tuple[3:4]+Tuple[5:7])*2 ==tToN(Tuple[-3:]+Tuple[3:5])  
for p in permutations(range(0,10),10):
    if check(p):
        print(f"{tToN(p[:5])} + {tToN(p[3:4]+p[5:7])} + {tToN(p[3:4]+p[5:7])} = {tToN(p[-3:]+p[3:5])}")

今日挑戰

input是一個列表,存在一個index i,
滿足A[0] < A[1] < ... A[i-1] < A[i] > A[i+1] > ... > A[A.length - 1],
試找出此index i。

舉例來說:
input: A=[2,3,8,5,1]
ouput: 2 (山峰8在index=2的位置)

參考解答

找到最大值的index回傳,一行解:

def findPeak(A):
    return A.index(max(A))

上一篇
Day26- python內建itertools模組簡介,窮舉排列組合
下一篇
Day28- 經典黑白羊過橋問題
系列文
活用python- 路遙知碼力,日久練成精30

尚未有邦友留言

立即登入留言