题目描述 给你若干个字符串,请编程输出每个字符串的子串个数。 输入 若干个字符串,每个字符串占一行,字符串中不含空格,长度最大为1000。 输出 对应每一行的字符串,输出该字符串子串的个数。 样例输入 复制 abc apple software 样例输出 复制 7 16 37
时间: 2024-03-09 11:51:12 浏览: 47
程序员面试题精选-输出一个字符串的所有子串
这道题可以使用暴力枚举的方式来求解。对于每个字符串,枚举所有的子串,并统计子串的个数即可。下面是 C++ 的代码实现:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
while (cin >> str) {
int n = str.size();
int cnt = 0;
for (int i = 0; i < n; i++) {
for (int j = i + 1; j <= n; j++) {
cnt++;
}
}
cout << cnt << endl;
}
return 0;
}
```
该代码使用了两层循环来枚举子串,时间复杂度为 $O(n^2)$,可以通过本题。但是,当输入的字符串数量和长度较大时,该算法的效率会较低,需要优化。
阅读全文