美文网首页
迭代算法

迭代算法

作者: 火头陀 | 来源:发表于2018-12-11 10:56 被阅读0次

问题

输入一个字符串,给出该字符串所有的排列

问题分析

非常标准的排列问题,不考虑字符串重复的前提下共有n!种排列,基本思路为从字符串数组中依次取一个字符作为首字符,剩余字符串作为参数使用迭代的方式找出所有可能性

算法实现

# 输入一个字符串,给出该字符串所有的排列
# 复杂度O(n!)
def StringIteration(s):
    data = []
    if len(s) <= 1:
        data.append(s)
        return data
    for k, v in enumerate(s):
        subArr = "".join(s[:k] + s[(k+1):])
        subStrs = StringIteration(subArr)
        for item in subStrs:
            data.append(v+item)
    return data

if __name__ == '__main__':
    s = 'abcde'
    res = StringIteration(s)
    print res, len(res)

相关文章

  • Flink DataSet 迭代

    机器学习和图计算应用,都会使用到迭代计算,Flink 通过在迭代算子中定义 Step 函数来实现迭代算法,迭代算法...

  • python编程(四级)3、递归与递推

    迭代法 迭代法解决问题的思路: 利用迭代算法解决问题,需要做好以下三个方面的工作: 确定迭代变量 在可以用迭代算法...

  • Boolan C++ 第九周 iterator_traits的

    当算法传入迭代器参数的时候,算法需要迭代器的一些类型数据,所以萃取器就代替迭代器对算法做出响应 实际的调用需要知道...

  • 流迭代器

    算法是基于迭代器操作实现的。由于流迭代器支持迭代器操作,因此至少可在一些泛型算法上使用这类迭代器。 8 int m...

  • 144.binary-tree-preorder-travers

    迭代算法,用到了栈

  • 迭代算法

    问题 输入一个字符串,给出该字符串所有的排列 问题分析 非常标准的排列问题,不考虑字符串重复的前提下共有n!种排列...

  • 串匹配一:KMP算法

    蛮力算法 蛮力串匹配算法是最直接和最直观方法。 理论上讲,蛮力算法至多迭代(n - m + 1)次,且每次迭代最多...

  • STL与泛型编程第三周笔记

    算法的形式 算法就是一组模板函数,用于操作容器,算法所需的一切信息都由迭代器来提供,迭代器必须能够回答算法的所有问...

  • 6.2.高斯混合聚类

    EM算法 期望极大算法.它是一种迭代算法,用于含有隐变量的概率模型参数估计.EM算法的每次迭代由两步组成:E步求期...

  • C++ STL是什么

    STL 组件主要包括容器,迭代器、算法和仿函数。STL 基本结构和 STL 组件对应。 STL 主要由迭代器、算法...

网友评论

      本文标题:迭代算法

      本文链接:https://www.haomeiwen.com/subject/xodshqtx.html