如何基于有效组合列表判定菜单的有效可选项?
菜单选项动态禁用算法设计
现有一个需逐行选择单个选项的菜单,其数据结构如下:
menu = [ [41, 36, 573, 572], [47, 96, 79], [480, 479] ]
菜单的行数及每行选项数量均不固定,代表选项的数字唯一。但并非所有选项组合都有效,允许的组合列表如下:
variants = [ [36, 47, 480], [41, 96, 480], [41, 79, 479], [41, 47, 479], [572, 47, 479], [573, 47, 479], ]
另有一个随用户选择逐步增长的options数组,示例如下:
options = [] options = [41] options = [41, 47] options = [41, 47, 479]
需要设计算法,根据options数组生成menu_toggles结构,用于启用或禁用菜单选项(无效组合对应的选项需设为false)。示例输出:
menu_toggles = [ [true, true, true, true], [true, false, true], [false, true] ]
规则说明
- 用户需按顺序从第一行开始逐行选择选项;
- 若重新选择前面行的选项,后续已选选项将被清除;
- 无法形成有效组合的选项需禁用,对应
menu_toggles位置设为false。
当前已有实现方案,但仅能禁用当前选中行之后的选项,现寻求更完善的解决方案。
内容的提问来源于stack exchange,提问作者chitinlink
相关产品推荐
相关产品推荐

