有什么方法把一个字符串分解成全部组成片段呢?
例如,字符串 abcde 可被分解为:
[
["a", "bcde"],
["ab", "cde"],
["abc", "de"],
["abcd", "e"],
["a", "b", "cde"],
["a", "bc", "de"],
["a", "bcd", "e"],
["ab", "c", "de"],
["ab", "cd", "e"],
["abc", "d", "e"],
["a", "b", "c", "de"],
["a", "b", "cd", "e"],
["a", "bc", "d", "e"],
["ab", "c", "d", "e"],
["a", "b", "c", "d", "e"]
]
先构出造字符串间隔位置对应的二进制,比如abc 对应11,然后从0计算到构造出来的二进制,当某个位置为1时,插入分隔符,每个数都根据分隔符切割即可。比如abc,二进制为11,为0时,字符串没有分隔符,数组为abc,当为01时,字符串为ab!c,可切割为ab和c,当为时,字符为a!bc,可切割为a和bc,当为11时,字符为a!b!c,可切割为a和b和c。
递归虽好,但是也不要滥用,层次深了效率会非常低。有人要算法,那我就贴个代码吧,大家看看就好~