搜尋感興趣的網誌

所有文章連結

2022年3月3日 星期四

Hacker Rank Plus Minus Solution by Python


之前有空閒時小雷會做一些Hacker Rank的解題,以免用R寫數據分析後Python全都忘光光,解題目前討論度高的大概就是HackerRankLeeCode了,LeeCode雖然也有解一些題目,但是submit之後會有跑了幾秒、記憶體消耗了多少甚麼的,對小雷這種初學者來說實在看了心驚..

 

網路上看很多人說到HackerRank題目大概是LeeCode的簡易程度,恩..這個小雷倒是感覺不出來,算一算真的開始接觸編程(RPython)大概是半年多,還有非常非常多需要熟悉了解的事情。

 

解這些題目時,並不是甚麼最佳化解,出發點是以能了解題目在說甚麼,解題方式是目前自己可以理解並解答完成的模式去走,先解的出來,未來再一步步朝著更高一階去進行,所以請別太苛責啦!!


小雷的Solution :


'''
題目 :
判斷一個arr中數字正負數字出現的次數
將其除與arr的長度後轉換為十進制

範圍 :
0 < n <= 100
-100 < len(arr) <= 100

解題方向 : 設定正負個數、判斷正負後做計算
'''

def plus_minus(arr, n) :
    # 設定正、負、零個數
    po = 0
    ne = 0
    ze = 0

    # 判斷n與arr範圍
    if 0 < n <= 100 and -100 < len(arr) <= 100 :
        # 取arr的長度作為迴圈範圍
        for i in range(len(arr)) :
            # arr[i] >> 取出arr中0,1,2,3,4,5的值判斷正負
            if arr[i] > 0 :
                # 個數加一
                po += 1
            elif arr[i] < 0 :
                ne += 1
            elif arr[i] == 0 :
                ze += 1
       
        # 依照題目的公式計算
        print("po = ", "%f"%(po / len(arr)))
        print("ne = ", "%f"%(ne / len(arr)))
        print("ze = ", "%f"%(ze / len(arr)))
    else :
        print("error arr and n")


if __name__ == "__main__" :
    arr = [-4, 3, -9, 0, 4, 1]
    n = 6
    plus_minus(arr, n)

沒有留言:

張貼留言

其他文章

看看精選文章

納希克房價分析 | Nashik Apartment Price Analyze – 語法解析(上)

  這次 Nashik 的房價分析有上傳至 Kaggle ,有興趣的朋友可以前往閱覽, RMarkdown PDF 報告存放在 Google 雲端,程式碼則是存放於 Github ,照慣例會分享好用的函式語法,雖說基本的 Packages 與語法可能很多人都會完整的閱覽,但是實際...