solution.md 1.5 KB
Newer Older
每日一练社区's avatar
每日一练社区 已提交
1 2 3 4 5 6 7 8 9 10 11 12
# 不同子串
#### 题目描述
一个字符串的非空子串是指字符串中长度至少为1 的连续的一段字符组成的串。  
例如,字符串aaab 有非空子串a, b, aa, ab, aaa, aab, aaab,一共7 个。  
注意在计算时,只算本质不同的串的个数。  
请问,字符串```0100110001010001```有多少个不同的非空子串?


## aop
### before
```cpp

每日一练社区's avatar
每日一练社区 已提交
13 14 15
#include <bits/stdc++.h>

using namespace std;
每日一练社区's avatar
每日一练社区 已提交
16 17 18 19 20 21 22 23
```
### after
```cpp

```

## 答案
```cpp
每日一练社区's avatar
每日一练社区 已提交
24 25 26 27 28 29 30 31 32 33 34
int main()
{
    set<string> s;
    string str;
    cin >> str;
    for (int i = 0; i < str.size(); i++)
        for (int j = i; j < str.size(); j++)
            s.insert(str.substr(i, j - i + 1));
    cout << s.size();
    return 0;
}
每日一练社区's avatar
每日一练社区 已提交
35 36 37 38 39
```
## 选项

### A
```cpp
每日一练社区's avatar
每日一练社区 已提交
40 41 42 43 44 45 46 47 48 49 50
int main()
{
    set<string> s;
    string str;
    cin >> str;
    for (int i = 0; i < str.size(); i++)
        for (int j = i; j < str.size(); j++)
            s.insert(str.substr(i, j + i - 1));
    cout << s.size();
    return 0;
}
每日一练社区's avatar
每日一练社区 已提交
51 52 53 54
```

### B
```cpp
每日一练社区's avatar
每日一练社区 已提交
55 56 57 58 59 60 61 62 63 64 65
int main()
{
    set<string> s;
    string str;
    cin >> str;
    for (int i = 0; i < str.size(); i++)
        for (int j = i; j < str.size(); j++)
            s.insert(str.substr(i, j + 1));
    cout << s.size();
    return 0;
}
每日一练社区's avatar
每日一练社区 已提交
66 67 68 69
```

### C
```cpp
每日一练社区's avatar
每日一练社区 已提交
70 71 72 73 74 75 76 77 78 79 80
int main()
{
    set<string> s;
    string str;
    cin >> str;
    for (int i = 0; i < str.size(); i++)
        for (int j = i; j < str.size(); j++)
            s.insert(str.substr(i, j - i));
    cout << s.size();
    return 0;
}
每日一练社区's avatar
每日一练社区 已提交
81
```