题目
给定一个字符串S,求这个字符串所有的子串,子串字符在原字符串中可不连续,顺序按原字符串中的字符顺序。
子串的数量
按照题干可知子串的数量是2n-1个。
利用2进制的特点
int n = s1.length();
if (n==1)
{
cout << s1 << endl;
return;//
}
int num = 1 << n;
vector<string> ve;
for (int i = 1; i < num; i++)//8
{
string ss;
for (int j= 0; j < n; j++)
{
if (i&(1<<j)) /// 1
{
cout << (1 << j);
ss.push_back(s1[j]);
}
}
ve.push_back(ss);
}