在C++中查找拆分字符串的所有数组排列
Find all array permutations of splitting a string in C+++
我有一串数字,我想拆分成所有可能的组合(字母顺序必须保持固定),因此:
data = "12479"
输出
combs = [[1, 2479], [1, 2, 479], [1, 24, 79] ...etc]
我该怎么做?
递归算法很简单:
combinations(data)
if size(data) == 0 return []
if size(data) == 1 return [ data ]
return
[ head(data) ] + combinations(tail(data)) +
[ head(data) + head(combinations(tail(data))) + tail(combinations(tail(data)))
前两个 return 语句是基本情况。第三个 return 语句要么拆分第一个元素,要么不拆分。请注意,+、head 或 tail 根据上下文对数组或字符串进行操作。
我有一串数字,我想拆分成所有可能的组合(字母顺序必须保持固定),因此:
data = "12479"
输出
combs = [[1, 2479], [1, 2, 479], [1, 24, 79] ...etc]
我该怎么做?
递归算法很简单:
combinations(data)
if size(data) == 0 return []
if size(data) == 1 return [ data ]
return
[ head(data) ] + combinations(tail(data)) +
[ head(data) + head(combinations(tail(data))) + tail(combinations(tail(data)))
前两个 return 语句是基本情况。第三个 return 语句要么拆分第一个元素,要么不拆分。请注意,+、head 或 tail 根据上下文对数组或字符串进行操作。