iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 13
0
自我挑戰組

程式設計師大冒險系列 第 13

13/150_數字基本題型(Python)+10038 - Jolly Jumpers

數字基本題型,判斷是不是指定條件數列。題目解說有附正反表格比較,清楚表達題目內容。運作過程還附圖片解說,幫助程式碼了解。


10038 - Jolly Jumpers

中文版
建議先看英文版

題目解說

給你一列數字,判斷數字差是否為1~(n-1)

Jolly Not jolly
例:n ,a1...an 例:n ,a1...an
5, 1 ,4, 2, -1, 6 4, 1, 4, 2, 3,
則數字差為 3 ,2, 3 ,7 則數字差為 3 ,2 ,1

程式碼

import sys
def inp():
    sinp=sys.stdin.readline()
    while (sinp!=""):
        sinp=sinp.replace("\n","")
        arinp=list(map(int,sinp.split()))
        #print(arinp)#
        Jolly(arinp)
        sinp=sys.stdin.readline()

讀取測資

     
def  Jolly(ar):
    jo=isjolly(ar)
    if (jo):
        print("Jolly")
    else:
        print("Not jolly")

答案輸出

def isjolly(ar):
    d=dict()#字典初始化
    for i in range(1,ar[0],1):#將數字差填入字典中,並設為0
        d[i]=0
    #print(d)#
    for j in range(1,ar[0],1):
        ind=abs(ar[j]-ar[j+1])#計算數字差(abs=絕對值)
        #print(ind,d.get(ind))
        if(d.get(ind)==0):#字典這個數字差為0嗎?
            d[ind]=1#是,第一次出現
        else:
            return 0#否,之前出現過,或是距離差超過範圍
    return 1
    
inp()

https://ithelp.ithome.com.tw/upload/images/20181013/20091910wK64odPueR.jpg


總結

感謝撥冗閱讀,目前還在學習Python這門語言,需要改正地方歡迎留言。
如果有正在解的題目,也可以一起討論。


上一篇
12/150_12019 - Doom's Day Algorithm+全域變數解說
下一篇
[14/150]_無限房間(Python)
系列文
程式設計師大冒險115
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言