栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在python中实现此算法?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在python中实现此算法?

itertools.product
通常,您可以使用笛卡尔积。具体来说,我将分两个步骤实施您的算法:

  1. 将输入字符串(例如
    "1 0^ 1* 0^ 1"
    )解析为整数列表;和
  2. 产生清单清单的产品。

一个相对简单的基于生成器的实现,带有一个帮助函数,为了清楚起见,它看起来像:

def algorithm(input_):    # Step 1    instructions = []    for s in input_.split():        try: instructions.append([int(s)])        except ValueError: instructions.append(list(values(s)))    # Step 2    for prod in itertools.product(*instructions):        yield proddef values(s):    RULES = {'*': 4, '^': 2}    n = int(s[:-1])    for x in range(RULES[s[-1]]):        yield n + x

例如:

>>> print("n".join(" ".join(map(str, t)) for t in algorithm("1 0^ 1* 1")))1 0 1 11 0 2 11 0 3 11 0 4 11 1 1 11 1 2 11 1 3 11 1 4 1

您将不得不修改它以获得所需的精确顺序(您似乎拥有一个运算符,而不是从左至右的优先级)和格式(例如,组之间的空格)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/392367.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号