- def fun(s):
- def chazhao(s):
- '返回索引从0开始满足条件的回文序列的所有长度生成器'
- n = 1
- while n<=len(s):
- s1 = s[:n]
- if s1 == s1[::-1]:
- yield n
- n += 1
- for i in chazhao(s):
- if i == len(s):
- yield s.split(',')
- else:
- yield from [s[:i].split(',')+j for j in fun(s[i:])]
- s1 = 'cbbbcc'
- s1_out =[ i for i in fun(s1)]
- s2 = 'aabbbc'
- s2_out =[ i for i in fun(s2)]
- print(f"输入:{s1}\n输出:{s1_out}")
- print(f"输入:{s2}\n输出:{s2_out}")
- >>>
- ================== RESTART: C:\Users\13555\Desktop\每日一题.py ==================
- 输入:cbbbcc
- 输出:[['c', 'b', 'b', 'b', 'c', 'c'], ['c', 'b', 'b', 'b', 'cc'], ['c', 'b', 'bb', 'c', 'c'], ['c', 'b', 'bb', 'cc'], ['c', 'bb', 'b', 'c', 'c'], ['c', 'bb', 'b', 'cc'], ['c', 'bbb', 'c', 'c'], ['c', 'bbb', 'cc'], ['cbbbc', 'c']]
- 输入:aabbbc
- 输出:[['a', 'a', 'b', 'b', 'b', 'c'], ['a', 'a', 'b', 'bb', 'c'], ['a', 'a', 'bb', 'b', 'c'], ['a', 'a', 'bbb', 'c'], ['aa', 'b', 'b', 'b', 'c'], ['aa', 'b', 'bb', 'c'], ['aa', 'bb', 'b', 'c'], ['aa', 'bbb', 'c']]
- >>>
复制代码 |