C++ 中字符串的不同子字符串计数
根据问题,我们得到一个字符串 str,我们必须计算给定字符串中的所有子字符串。子字符串是已经存在字符串的一部分,其大小可能小于或等于现有字符串。
让我们借助示例了解问题及其解决方案。
输入 − str = "wxyz";
输出 − 不同子字符串的数量为:10
说明 − 计算的不同子字符串为 −
wxyz, wxy, wx, w, xyz, xy, x, yz, y, z so their count is 10
输入 − str = "zzzz"
输出 − 不同子字符串的数量为:4
说明 − 计算的不同子字符串为 −
zzzz, zzz, zz, z
下面程序中使用的思路如下
将字符串 str 作为输入。
声明一个空的无序集合 "myset"。
循环 i 从 0 开始,每次移动 1 步,直到 i 小于字符串的大小。
声明一个新的字符串空间 ""(空)。
循环 j 从 i 开始,每次移动 1 步,直到 j 小于字符串的大小。
在每一步中,将空间的值与 str[j] 连接起来
将空间插入 myset。
打印 str 的大小作为答案。
示例
#include<iostream>
#include<unordered_set>
using namespace std;
int main(){
string str = "aaaa";
unordered_set<string> myset;
int i, j;
for (i = 0; i < str.size(); ++i){
string space = "";
for (j = i; j < str.size(); ++j){
space = space + str[j];
myset.insert(space);
}
}
cout <<"count of distinct substring is: " <<str.size();
return 0;
}输出
如果我们运行以上代码,我们将得到以下输出 -
count of distinct substring is: 4
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP