您的位置:首页 > 职场人生

《程序员面试题精选》05.输出一个字符串的所有子串

2017-10-31 10:27 309 查看
题目:给定一个字符串,输出其所有子字符串,例如给定字符串abc,则输出 :a,b,c,d,ab,bc,cd,abc,bcd,abcd。用递归的思路就是先找所有以a开头的子串,然后再找以b开头的子串,直到d。其实用python解决非常省事,见下面的代码。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Python 3.6

from itertools import accumulate

def all_sub_string(a_string):
if len(a_string) == 1:
return [a_string]
else:
return list(accumulate(a_string)) + all_sub_string(a_string[1:])

print(all_sub_string('abcd'))

# ['a', 'ab', 'abc', 'abcd', 'b', 'bc', 'bcd', 'c', 'cd', 'd']
注意python有默认递归1k层的限制,换成递推的写法也可以。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 子串
相关文章推荐