码迷,mamicode.com
首页 > 编程语言 > 详细

python每天1道面试题(3)--字符串组合

时间:2019-06-05 00:28:32      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:java   href   code   题目   规律   final   range   int   试题   

"""
题目3:输入一个字符串,输出该字符串中字符的所有组合。

举个例子,如果输入abc,它的组合有a、b、c、ab、ac、bc、abc。

解题思路: 先用列举法,举例出组合元素长度分别是1,2,..,len(str)时的具体元素, 然后发现当数组长度>=3之后的规律是一致的,
前n个字符合体即li[:m],拼接上后面li[m:]的每一个字符.
"""


def compose_str(str):
    li = [i for i in str]
    final_li = list()
    for m in range(len(li)):
        if m == 0:
            final_li.extend([i for i in li])
        elif m == 1:
            for n in range(len(li)):
                final_li.extend([li[n]+i for i in li[n+1:]])
        else:
            final_li.extend(‘‘.join(li[:m])+i for i in li[m:])
    print(final_li)


str = abc
compose_str(str)
#  输出: [‘a‘, ‘b‘, ‘c‘, ‘ab‘, ‘ac‘, ‘bc‘, ‘abc‘]

参考链接: https://blog.csdn.net/GetNextWindow/article/details/24202369,原文用java实现,具体思路可能有点不同.

python每天1道面试题(3)--字符串组合

标签:java   href   code   题目   规律   final   range   int   试题   

原文地址:https://www.cnblogs.com/jason-Gan/p/10977011.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!