打印所有的子序列,包括空串。
比如:"abc"
每一个字符都有两种情况,要与不要。
代码:
void process(string arr, int i, string subStr) {
if (i == arr.size()) {
if (subStr == "")
cout << "空" << endl;
else
cout << subStr << endl;
return;
}
process(arr, i + 1, subStr);//不选择第i个字符
process(arr,i+1,subStr+arr[i]);//选择第i个字符
}
int main() {
process("abc", 0, "");
}
运行结果: