python中rank_hackerrank中python题目的套路
使用getattr
很多題目都是需要執行類似于這樣的操作:
insert 0 5
insert 1 10
insert 0 6
remove 6
append 9
append 1
sort
pop
reverse
可以使用這樣的邏輯:
if __name__ == '__main__':
N = int(input())
res = list()
for _ in range(N):
inp = input().split()
if inp[0] == 'print':
print(res)
continue
getattr(res, inp[0])(*map(int, inp[1:]) if len(inp) > 1 else [])
# print(*[item for item in d])
輸出一個列表中的全部元素, 比如說:
In [149]: polar(s)
Out[149]: (5.0990195135927845, -1.7681918866447774)
print(*polar(s))
想要用兩個不同的類
如果同時想要用 Counter 和 OrderedDict,可以寫一個空的類,然后直接同時實例化:
from collections import Counter, OrderedDict
class OrderedCounter(Counter, OrderedDict):
pass
[print(*c) for c in OrderedCounter(sorted(input())).most_common(3)]
```'
# itertools.product的問題
這個問題:https://www.hackerrank.com/challenges/maximize-it/problem
本來絕大多數人第一反應都是用product解決,看到一位老爺子,非常優雅的用lambda表達式解決了。
```python
from itertools import product
K, M = map(int,input().split())
data = [map(int,input().split()[1:]) for _ in range(K)]
F = lambda x: x**2
S = lambda x: sum(map(F, x)) % M
print(max(map(S, product(*data))))
總結
以上是生活随笔為你收集整理的python中rank_hackerrank中python题目的套路的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HackerRank [Algo] Ma
- 下一篇: 以下题目需要当场编写实现,,答案自己写