【发布时间】:2018-01-05 17:43:51
【问题描述】:
我正在编写一个 Python 程序,以使用 itertools 生成给定输入字符串的所有可能子字符串。
def substring_generator(seq):
substring_list = list(seq)
return chain.from_iterable(combinations(substring_list, r) for r in range(len(seq) + 1))
print list(map(''.join, substring_generator('LLRR')))
输出['', 'L', 'L', 'R', 'R', 'LL', 'LR', 'LR', 'LR', 'LR', 'RR', ' LLR'、'LLR'、'LRR'、'LRR'、'LLRR']。 但我想知道如何输出子字符串中每个字符的索引,例如seq = L0L1R2R3 子字符串将是 L0R2 或 L1R2R3 有什么方法可以做到这一点而不必编辑太多现有代码?
【问题讨论】:
-
“R1”从何而来?
-
I 函数没有返回正确的结果。字符串
'L0R2R3'不是'L0L1R2R3'的子字符串。这是seq的子集。'LLRR'的正确子串列表是['', 'L', 'L', 'R', 'R', 'LL', 'LR', 'RR', 'LLR', 'LRR', 'LLRR']