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

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)]

猜你喜欢

转载自www.cnblogs.com/Lee-yl/p/9004115.html