天天看點

不同子串(c++)不同子串

不同子串

題目

一個字元串的非空子串是指字元串中長度至少為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;
}
           

繼續閱讀