【发布时间】:2020-05-03 01:43:52
【问题描述】:
我最近轰炸了一次编码面试,因为我无法足够快地生成列表的所有可能子列表。更具体地说:(使用python)
- 我们得到了一个字符串数字列表
["1", "3", "2", ...] - 这个大小为 6 的列表中有多少个子列表可以被 16 整除?
- 请注意,虽然原始列表中的元素可能不是唯一的,但在构建子列表时应该将它们视为唯一的。例如。对于
[1, 1, 1],前两个 1 的子列表和后两个 1 是不同的子列表。
使用itertools.combinations 我能够以足够快的速度生成所有子列表,但是循环遍历所有这些子列表以确定哪些子列表可以被 16“整除”太慢了。
那么有没有办法以与itertools.combations 相同的速度(或更快)创建子列表,在创建每个子列表时检查它们是否可被 16 整除?
任何见解将不胜感激!
【问题讨论】:
-
字符串列表“可被 16 整除”是什么意思?您是指 int 值的总和吗?
-
不清楚您所说的“大小为 6 的列表可被 16 整除”是什么意思。您是指列表中值的总和吗?
-
子列表大小是指子列表元素的总和吗?
-
大家好。对不起,我应该更清楚。我的意思是串联可以被 16 整除
标签: python optimization combinations