# 不同子串 **题目描述** 一个字符串的非空子串是指字符串中长度至少为1 的连续的一段字符组成的串。 例如,字符串aaab 有非空子串a, b, aa, ab, aaa, aab, aaab,一共7 个。 注意在计算时,只算本质不同的串的个数。 请问,字符串`0100110001010001`有多少个不同的非空子串? 以下程序实现了这一功能,请你补全空白处的内容: ```c #include using namespace std; int main() { set s; string str; cin >> str; for (int i = 0; i < str.size(); i++) for (int j = i; j < str.size(); j++) __________________ cout << s.size(); return 0; } ``` ## 答案 ```c s.insert(str.substr(i, j - i + 1)); ``` ## 选项 ### A ```c s.insert(str.substr(i, j + i + 1)); ``` ### B ```c s.insert(str.substr(i, j - i - 1)); ``` ### C ```c s.insert(str.substr(i, j - i)); ```