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

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

时间:2018-05-07 19:39:09      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:子串   app   列表   AC   src   运算   image   输入   width   

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------集合所有的子集或者字符串所有子串

标签:子串   app   列表   AC   src   运算   image   输入   width   

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

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