用 C++ 統計以字元 X 開頭以字元 Y 結尾的子字串數量
給定字串 str。目標是統計 str 中以字元 X 開頭並以字元 Y 結尾的子字串的數量。例如,如果輸入是“artact”並且 X='a' 和 Y='t',則子字串將是“art”、“act”、“artact”。數量為 3。
讓我們透過示例來理解。
輸入 − str=”abcccdef” X=’a’ Y=’c’
輸出 −以字元 X 開頭以 Y 結尾的子字串數量為 − 3
說明 − 子字串將是
“abc”, “abcc”, “abccc”. Total 3.
輸入 − str=”tempest” X=’t’ Y=’t’
輸出 − 以字元 X 開頭以 Y 結尾的子字串數量為 − 3
說明 − 子字串將是 −
“t” , “tempest” , “t”. Total 3
下面程式中使用的方法如下
我們將遍歷字串並增加 X 的計數。如果然後遇到 Y,則將 X 計數新增到以 X 開頭並以 Y 結尾的字串計數中。
獲取字串 str。計算長度為 str.size()。
函式 X_Y(string str, int length, char X, char Y) 獲取字串 str、字元 X、Y 並返回 str 的以 X 開頭以 Y 結尾的子字串的數量。
將初始計數設定為 0。
將 x_total 作為 str 中字元 X 的計數。
使用 for 迴圈遍歷 str。從 i=0 到 i<length。
如果 str[i]==X,則增加 str 中 X 的計數 (x_total++)。
如果 str[i]==Y,則將 x_total 新增到計數中。如果沒有 X,則 x_total 將為 0,否則,Y 是從 X 開始的子字串的結束字元。
返回 count 作為所需結果。
示例
#include <bits/stdc++.h> using namespace std; int X_Y(string str, int length, char X, char Y){ int count = 0; int x_total = 0; for (int i = 0; i < length; i++){ if(str[i] == X){ x_total++; } if (str[i] == Y){ count = count + x_total; } } return count; } int main(){ string str = "defaabbcchhkl"; int length = str.size(); char X = 'd'; char Y = 'a'; cout<<"Count of substrings that starts with character X and ends with character Y are: "<<X_Y(str, length, X, Y); return 0; }
輸出
如果我們執行以上程式碼,它將生成以下輸出:
Count of substrings that starts with character X and ends with character Y are: 2
廣告