子集截取字符串
一个字符串的非空子串是指字符串中长度至少为1 的连续的一段字符组成的串。
例如,字符串aaab 有非空子串a, b, aa, ab, aaa, aab, aaab,一共7 个。
注意在计算时,只算本质不同的串的个数。
请问,字符串0100110001010001 有多少个不同的非空子串?
#include<bits/stdc++.h>
using namespace std;
map<string,int> mp;
int main()
{
string s;
cin>>s;
int num=0;
int len=s.length();
for(int i=0;i<len;i++)
for(int j=1;j<=len;j++)
{
string ss=s.substr(i,j);
if(mp[ss]==0)
{
mp[ss]=1;
num++;
}
}
cout<<num<<endl;
return 0;
}