字串範圍查詢,統計包含更新後的不同字元數量


字串範圍查詢是指字串中存在的字元範圍,其中字元從索引[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)	

結論

我們已經探索了字串範圍查詢的概念,以統計包含更新後的不同字元數量。我們在輸出中看到,它透過進行區分來反向統計字串的字元。例如,很多時候我們有兩件相同顏色的襯衫,但我們只穿其中一件,這展示了區分的一個現實生活例子。

更新於: 2023年5月10日

250 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.