考虑以下示例:
我有一个包含5个项目的列表,每个项目的出现次数为1或0:
{a, b, c, d, e}
限制组合如下:
在任何给定时间,a,c和e的出现不能为1。
b,d和e的出现在任何给定时间都不能为1。
基本上,如果在数据库中发现a
和c
的出现已经为1,并且不允许给定输入为e
(给出e出现1)(第1条)或反之亦然。
另一个示例,d
和e
在数据库中的出现次数分别为1,不允许b
的新输入(在第2节之后)。
一个更加坚实的例子:
LETTER | COUNT(OCCURRENCE)
------------------------------
a | 1
b | 1
c | 1
d | 0
e | 0
因此,e
的新输入将因违反第1条而被拒绝。
此解决方案的最佳算法/实践是什么?
我想过有很多if-else
语句,但这似乎不够高效。如果我有一个动态的元素列表怎么办?或者至少对这个程序有更好的可扩展性。
答案 0 :(得分:0)
正如BKassem(我认为)在评论中提到的(无论出于何种原因被删除)。
此方案的算法:
(count(a) * count(c) * count(e)) == 0 //proceed to further actions
完美无瑕地工作!