import re
names = ['ArrayList', 'LinkedHashMap']
for s in 'al', 'ali', 'arrli', 'li', 'lh', 'lhmap', 'hm':
f = re.compile('\\w*'.join(s), flags=re.I).search
print(f'{s:5}:', list(filter(f, names)))
выхлоп:al : ['ArrayList']
ali : ['ArrayList']
arrli: ['ArrayList']
li : ['ArrayList', 'LinkedHashMap']
lh : ['LinkedHashMap']
lhmap: ['LinkedHashMap']
hm : ['LinkedHashMap']
Senior Pomidor developer
#!/bin/pomidor
функцыя всехпорву(аргумент, мешок){
мешок.запихнуть(аргумент)
длявсех(детей аргумента){
всехпорву(детей, мешок)
}
}
конкретный_мешок = []
всехпорву(конкретный_аргумент, конкретный_мешок)
def power(x, y):
res = 1
for d in f'{y:b}':
res *= res
if d == '1':
res *= x
return res
print(power(21, 13))
l = [1, 2, -6, 7, 4, 3]
le = len(l)
step0, step1, step2 = [None, []], [None, None], [None, None]
l += [0, 0] # добьём незначащими нулями
for i in range(le):
x, y, z = l[i:i + 3]
for j, pos in enumerate(step0):
if pos is None:
continue
newpos = [*pos, -x]
if step1[j] is None or sum(step1[j]) < sum(newpos):
step1[j] = newpos
newpos = [*pos, x, -y]
if step2[j] is None or sum(step2[j]) < sum(newpos):
step2[j] = newpos
step0, step1, step2 = step1, step2, [[*pos, x, y, -z], None]
best = max((pos for step in (step0, step1, step2) for pos in step if pos is not None), key=sum)
print(best[:le])
function* permutatins(s) {
if (s.length > 1)
for (let i = 0; i < s.length; i++)
for (let t of permutatins(s.slice(0, i) + s.slice(i + 1)))
yield s.charAt(i) + t;
else yield s;
}
for (let s of permutatins('941'))
console.log(s);
0 ->
1 -> 28, 19, 10
2 -> 20
3 -> 12
4 ->
5 -> 5
6 -> 15, 33
7 ->
8 -> 17
Очевидно, что перебрасывать имеет смысл кубик, на котором выпало 1-3.
P(x) == (x-x0)*(x-x1)*....
, где x0, x1,...
- корни многочлена P(x)
, у которого коэффициент при старшем члене равен 1.from collections import Counter
from itertools import combinations
def HowManySquares(xx, yy):
"""
:param xx: отсортированые x-координаты вертикалей
:param yy: отсортированые y-координаты горизонталей
"""
ww = Counter(b - a for a, b in combinations(xx, 2))
hh = Counter(b - a for a, b in combinations(yy, 2))
return sum(c * hh[w] for w, c in ww.items())
print(HowManySquares([0, 2, 3, 4, 5, 6], [0, 2, 3, 4, 6])) # 31
from random import randint
def shift_rand(a, b, x, f):
t = randint(a, (b - x) * f + x)
return t if t <= x else (t - x) // f + x
спойлер: 3432
399072960
n = 4600
dp = [''] * (n + 1)
dp[0] = '0'
for step in 256, 304, 397, 465, 477, 497:
for i in range(n - step, -1, -1):
if dp[i]:
for j in range(i + step, n + 1, step):
if not dp[j]:
dp[j] = f'{dp[i]}+{step}*{(j - i) // step}'
print(dp[-1][2:] if dp[-1] else 'извини, не смогла')