不同子串
題目
一個字元串的非空子串是指字元串中長度至少為1的連續的一段字元組成的串。
例如,字元串aaab有非空子串a, b, aa, ab, aaa, aab, aaab,一共 7 個。
注意在計算時,隻算本質不同的串的個數。
輸入格式:
一行,一個長度不超過20的字元串s。
輸入格式:
一個整數,表示字元串s的本質不同的非空字串個數。
輸入樣例:
aaab
輸出樣例:
7
代碼
#include <bits/stdc++.h>
using namespace std;
int main()
{
set<string> str;
string s;
cin >> s;
for(int i=0;i<s.length();i++)//循環起始位置
{
for(int j=1;j<=s.length()-i;j++)//循環長度
{
str.insert(s.substr(i,j));//數量累加
}
}
cout << str.size();
return 0;
}