给你若干个字符串,请编程输出每个字符串的子串个数
时间: 2024-03-09 11:45:33 浏览: 60
LabView图形化编程语言之拆分中文字符串.zip
以下是一个用 C++ 编程输出若干个字符串子串个数的示例代码:
```c++
#include <iostream>
#include <string>
#include <unordered_set>
#include <vector>
using namespace std;
int countSubstrings(string s) {
unordered_set<string> subs;
for (int i = 0; i < s.size(); i++) {
for (int j = 1; j <= s.size() - i; j++) {
string sub = s.substr(i, j);
subs.insert(sub);
}
}
return subs.size();
}
int main() {
vector<string> strings = {"hello", "world", "programming", "language"};
for (int i = 0; i < strings.size(); i++) {
cout << strings[i] << " has " << countSubstrings(strings[i]) << " substrings." << endl;
}
return 0;
}
```
该程序使用了一个字符串向量 `strings` 存储了若干个字符串,然后用一个循环遍历每个字符串,分别计算它们的子串数量并输出到控制台。计算子串数量的方法与前面的示例代码相同,即使用嵌套循环遍历字符串中的所有子串,并将它们添加到一个无序集合中,最后返回集合的大小。
在这个程序中,我们使用了 C++ 的标准向量容器来存储多个字符串。标准向量是一个动态数组,它可以根据需要自动扩展或收缩。我们可以使用 `push_back` 方法向向量添加新元素,使用 `size` 方法获取向量的大小,并使用下标运算符 `[]` 访问向量中的元素。
注意,在实际应用中,如果字符串数量较大或字符串长度较长,计算子串数量的时间复杂度可能会很高,因此可能需要优化算法或使用并行计算等技术来加速计算过程。
阅读全文