字串範圍查詢,統計包含更新後的不同字元數量
字串範圍查詢是指字串中存在的字元範圍,其中字元從索引[0]開始,最後一個索引[]可以根據給定字串的長度指定。在本文中,我們將學習字串範圍查詢如何統計包含更新後的不同字元數量。
讓我們以一個統計字串及其更新後不同字元數量的例子為例。
字串 = “tutorialpoint” // 原始字串
給定字串的長度為 12。因此,計數為 13(計數始終從 1 開始)。
如果我們在 'l' 之後新增字元 's',則長度將變為 13,計數為 14。
現在更新後的字串為 tutorialspoint。
要統計更新後字串的不同字元,它變為 **10**,因為不同的字元只出現一次。例如,“tt”在**區分**後總共有兩個字元,它變為 1。
語法
unordered_map < datatype, string > Map_Name
引數
**unordered_map** - 這是 c++ 的標準模板庫,用於儲存包含鍵值對的元素。
**資料型別** - 資料型別表示為鍵,這是使用者指定的資料型別。
**字串** - 字串表示為值。
**Map_Name** - 為對映指定的任何名稱。
.first .second
引數
.first - 表示字串對的第一部分。
.second - 表示字串對的第二部分。
演算法
我們將從名為 **'iostream'** 和 **'unordered_map'** 的標頭檔案開始程式。
現在,我們從主函式開始,初始化一個空的 **'unordered_map <char, int>'** 來儲存給定字串中每個字元的計數。
我們使用第一個 for 迴圈逐個遍歷字串字元 **(charCount++)**。
我們使用第二個 for 迴圈列印不同的字元及其計數。在這個迴圈中,我們列印以下內容 -
p.first - 列印字串的字元。
p.second - 這將計算每個字元條目出現的次數。
完成第二個 for 迴圈後,我們將第三個索引更新為 **p** 以獲取新更新的字串及其計數。接下來,使用字串上的 **[]** 簡單地修改先前索引的字串字元。然後透過遞減舊字元的計數來更新對映上的計數 **[l--]**,並藉助 **[p++]** 將新字元遞增到字串中。
最後,我們列印不同的字元及其計數和更新後的字串。
示例
在這個程式中,我們將找到字串範圍查詢以統計包含更新後的不同字元數量。
#include <iostream>
#include <unordered_map>
using namespace std;
int main() {
string s = "school";
// counting of distinct characters in a string
unordered_map<char, int> charCount;
for (char c : s) {
charCount[c]++;
}
cout << "The Distinct characters of the string: ";
for (auto p : charCount) {
cout << p.first << "(" << p.second << ")\t ";
}
cout << endl;
//updation of string count and character distinction
s[3] = 'p';
// user can use any character
charCount['l']--;
charCount['p']++;
cout<< "*********:After Updation:*********";
// print the distinct characters along with their count
cout <<"\n"<< "The Distinct characters of the updated string: ";
for (auto p : charCount) {
cout << p.first << " (" << p.second << ")\t ";
}
cout << endl;
return 0;
}
輸出
The Distinct characters of the string: l(1) o(2) h(1) c(1) s(1) *********:After Updation:********* The Distinct characters of the updated string: l (0) o (2) h (1) p (1) c (1) s (1)
結論
我們已經探索了字串範圍查詢的概念,以統計包含更新後的不同字元數量。我們在輸出中看到,它透過進行區分來反向統計字串的字元。例如,很多時候我們有兩件相同顏色的襯衫,但我們只穿其中一件,這展示了區分的一個現實生活例子。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP