hackerrank itertools

题目:itertools.product()

题意:所有的(a[],b[])
思路:product用法
代码:

from itertools import product


a = map(int,input().split())
b = map(int,input().split())
print(*product(a,b))
from itertools import product


a = map(int,input().split())
b = map(int,input().split())
ls = list(product(a,b))
print(' '.join(map(str,ls)))

题目:itertools.permutations()

题意:任意两个字符
思路:permutation用法
代码:

from itertools import permutations
s,n = input().split(" ")
perm = list(permutations(s,int(n)))
perm.sort()
for i in perm:
    print ("".join(i))

标程:

from itertools import *
S, k = raw_input().split()
for i in permutations(sorted(S),int(k)):
    print("".join(i))

题目:itertools.combinations()

题意:小于n的任意个字符
思路:combinations用法
代码:

'''
-*- coding: utf-8 -*-
@Author  : PlayerGuan
@Time    : 2017/10/14 23:12
@Software: PyCharm Community Edition
@File    : main.py
'''
from itertools import combinations

s,n = input().split(" ")
for i in range(1,int(n)+1):
    for x in list(combinations(sorted(s),i)):
        print(''.join(x))

题目:itertools.combinations_with_replacement()

题意:任意字符n次
思路:combinations_with_replacement用法
代码:

'''
-*- coding: utf-8 -*-
@Author  : PlayerGuan
@Time    : 2017/10/14 23:12
@Software: PyCharm Community Edition
@File    : main.py
'''
from itertools import combinations_with_replacement

s,n = input().split(" ")
for x in list(combinations_with_replacement(sorted(s),int(n))):
    print(''.join(x))

题目:Compress the String!

题意:输出连续字符及其数量
思路:groupby用法
代码:

'''
-*- coding: utf-8 -*-
@Author  : PlayerGuan
@Time    : 2017/10/14 23:12
@Software: PyCharm Community Edition
@File    : main.py
'''
from itertools import groupby
print(' '.join('(%d, %s)' %(len(list(group)),key) for key, group in groupby(input())))

标程

from __future__ import print_function
from itertools import *

for i,j in groupby(map(int,list(raw_input()))):
    print(tuple([len(list(j)), i]) ,end = " ")

题目:Iterables and Iterators

题意:让你找出长度m的全排列中含’a’的概率
思路:combinations用法
代码:

'''
-*- coding: utf-8 -*-
@Author  : PlayerGuan
@Time    : 2017/10/14 23:12
@Software: PyCharm Community Edition
@File    : main.py
'''
from itertools import combinations

n = int(input())
s = input().split()
m = int(input())

cnt = 0
sum = 0
for x in list(combinations(s, m)):
    sum += 1
    if 'a' in x:
        cnt += 1
print(cnt/sum)#好像division默认浮点数?

题目:Maximize It!

题意:给你n个序列,每个序列选一个数,使得加和取模最大
思路:枚举所有的数 product用法
看的别人代码才会写,py各种函数嵌套的太鬼畜了啊
其实想着肯定有算法能优化,不过懒得动脑子了
代码:

'''
-*- coding: utf-8 -*-
@Author  : PlayerGuan
@Time    : 2017/10/14 23:12
@Software: PyCharm Community Edition
@File    : main.py
'''
from itertools import product

k,mod = map(int,input().split())
arrays = [map(int, input().split()[1:]) for _ in range(k)]
ans = map(lambda x : sum(i**2 for i in x) % mod ,product(*arrays))
print(max(ans))

猜你喜欢

转载自blog.csdn.net/huatian5/article/details/78519044
今日推荐