迭代算法

问题

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

问题分析

非常标准的排列问题,不考虑字符串重复的前提下共有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)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,280评论 0 4
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,256评论 0 13
  • 7月25日,天气晴朗,26-35,相比昨天上海应该是凉快了一些。早上5:30第一次醒,6点钟起床,刷了个牙,做了5...
    A逸水行舟阅读 131评论 0 0
  • 图片发自简书App 古镇.我回来了 作者/ 狼烟诗影 古镇,我来了,在回家的路上,我想起了你。沿着笔直的导航,痴恋...
    狼烟诗影阅读 206评论 0 1
  • 感恩早上和二宝早早起床上学上班,大宝和爸爸在家休假,我们俩羡慕中。。 感恩一早到公司,看了房子,筛选了简历,并把最...
    俩宝的妈咪阅读 87评论 0 0