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