首页 > 编程语言 > 详细

算法13------集合所有的子集或者字符串所有子串

时间:2018-05-07 18:22:57      阅读:159      评论:0      收藏:0      [点我收藏+]

1、题目:

给定字符串s=‘abc‘,所有子集:‘a‘,‘b‘,‘c‘,‘ab‘,‘ac‘,‘bc‘,‘abc‘。

所有子串:’a‘,‘b‘,‘c‘,‘ab‘,‘bc‘,‘abc‘

2、所有子集代码:

(1)位运算:(输入s为字符串)(输出subStr为迭代器,子集列表)

技术分享图片

def SubSet(s): 
  N = len(s) 
  for i in range(2**N): 
    subStr = [] 
    for j in range(N): 
      if(i >> j ) % 2 == 1: 
        subStr.append(s[j]) 
    yield subStr

(2)递归:

3、所有子串代码:s为字符串,ss为子串列表

ss=[s[i:i + x + 1] for x in range(len(s)) for i in range(len(s) - x)]

 

算法13------集合所有的子集或者字符串所有子串

原文:https://www.cnblogs.com/Lee-yl/p/9004115.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!