在 C++ 中查詢按字母順序排列的子字串的數量
假設我們有一個長度為 n 的字串。它只包含大寫字母。我們必須找到字元按字母順序出現的子字串的數量。子字串的最小大小為 2。因此,如果字串如下所示:“REFJHLMNBV”,並且子字串計數為 2,則它們是“EF”和“MN”。
因此,為了解決這個問題,我們將按照以下步驟進行操作 −
- 檢查 str[i] + 1 是否與 str[i+1] 相同,如果相同,則將結果增加 1,並迭代字串,直到下一個字母順序錯誤的字元,否則繼續。
範例
#include<iostream>
using namespace std;
int countSubstr(string main_str) {
int res = 0;
int n = main_str.size();
for (int i = 0; i < n - 1; i++) {
if (main_str[i] + 1 == main_str[i + 1]) {
res++;
while (main_str[i] + 1 == main_str[i + 1]) {
i++;
}
}
}
return res;
}
int main() {
string str = "REFJHLMNBV";
cout << "Number of substrings: " << countSubstr(str);
}輸出
Number of substrings: 2
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP