hackerrank 刷题一(python 基础)
- n,選手數量?
- n integers separated by space
思路,先把arr list化,排序,除掉與最高成績相同的成績,取第二高的成績。
2. 題二:Nested List. 給出n個學生,他們的名字以及成績,找到成績第二名(們),可以是成績相同的多個人。輸入:
- n 個學生
- 第一行學生名字,第二行學生成績. 直到所有學生都輸入完
思路一,先做一個dic, 把成績當作關鍵字key,保存名字。相同的成績append名字,最后把dic的keys list化,取第二高成績,輸出。
思路二,做一個list, 把[name, score]分別append在list里,把學生的成績做成set,排序后取第二高,直接輸出名字(使用 '\n'.join)
?
?3. 題三: No idea. 給出一個array, 兩個sets A,B. 如果array的數值在A里,加一分,如果在B里減一分,求最終分數. 輸入:
- n,m. 分別是array,sets A,B 的大小
- array
- set A
- set B
?
思路,把A,B做成set, 一個輸出sum[ (i in A)- (i in B)...]? 利用python 的sum()特性- sum([True]) =1, sum([True, False])=1, sum([True, True])=2.
?
? 4. 題四:The Minion Game.? 給出一個string,兩個玩家Stuart & Kevin做出所有的substring,如果substring開頭第一個單詞在AEIOU里,Kevin得一分,否則Stuart得一分。最后輸出贏的玩家和分數,如果平等輸出Draw。example : string= "BANANA". --> Stuart 12.
思路,做出一個dic, 兩個玩家各作為一個key, 初始值為0。對于每個玩家,得多少分取決于字母在string里的位置-第一個字母有len(string)個substring,...,最后一個字母只有一個substring。一個for, l=len(string), 每次加之后 l-=1, 最終加起來比較。
?
總結
以上是生活随笔為你收集整理的hackerrank 刷题一(python 基础)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学习方向、当前要做的事
- 下一篇: 青蛙学Linux—NFS