gpt4 book ai didi

python - 具有替换和最大出现约束的组合

转载 作者:行者123 更新时间:2023-12-04 02:30:46 25 4
gpt4 key购买 nike

from itertools import *
import collections
for i in combinations_with_replacement(['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'],15):
b = (''.join(i))
freq = collections.Counter(b)
for k in freq:
if freq [k] < 5:
print(k)

此代码大多数打印字符,如果少于 5 个则算数

我尝试做的是,如果在该字符串的任何位置重复了少于 x 次的任何字符,则从 join at fly 开始检查字符串,并仅打印符合该条件的字符串。

问题不在于我尝试做什么,或其全部打印并忽略 if ... 或打印 notting。怎么做正确,或者 python 是否存在简单的解决方案?

结果以小于5为例

False - fffaaffbbdd ( repeat 5 titemes f)
False - fffffaaaaac ( repeat 5 times a and f)
True - aaabbbccc11 ( no any character repeated more than 4 times )

更清楚地解释问题 - 在提供给下一个函数之前过滤所有字符重复次数超过 x 的字符串。例如 - 有简单的 print that strings 和 not print strings what not at rule.

最佳答案

如果我没理解错的话,您想打印每个字符最多只出现 4 次的字符串:

from collections import Counter
from itertools import combinations_with_replacement


for i in combinations_with_replacement(['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'],15):
c = Counter(i)
if c.most_common(1)[0][1] > 4:
continue
print(''.join(i))

打印:

...

00002446899cccd
00002446899ccce
00002446899cccf
00002446899ccdd

...

关于python - 具有替换和最大出现约束的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64334944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com