Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

นับจำนวนการเกิดขึ้นของอักขระในสตริงที่ซ้ำกันใน C++


กำหนดสตริง str อักขระ และจำนวนเต็มบวก N สตริง str จะทำซ้ำโดยไม่มีกำหนด เป้าหมายคือการหาจำนวนการเกิดขึ้นของอักขระใน str ในอักขระ N ตัวแรกของการทำซ้ำ

หาก str คือ “abac” อักขระคือ ch='b' และ N คือ 10

ใน 10 ตัวอักษรแรกของ “abacabacabacabac…….” b เกิดขึ้นสองครั้ง

หมายเหตุ − ใช้ str และอักขระ ch ในกรณีเดียวกัน

ให้เราเข้าใจด้วยตัวอย่าง

ตัวอย่าง

อินพุต

str = "TPTTTT" ch = 'T' n = 12

ผลลัพธ์

Count of occurrences of a character in a repeated string are: 10

คำอธิบาย

The number of ‘T’ in str is 5. Length of str is 6.
For n=12, str will be fully repeated twice, so count of Ts is 6*2=12.

อินพุต

str = "sets" ch = 's' n = 15

ผลลัพธ์

Count of occurrences of a character in a repeated string are: 7

คำอธิบาย

The number of ‘s’ in str is 2. Length of str is 4.
For n=15, str will be fully repeated 3 times (first 12 characters), so count of s in those will be 3*2=6. For the remaining 3 characters (set) s occurs once. So count is 6+1=7

แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้

ในแนวทางนี้ ก่อนอื่นเราจะนับจำนวนการเกิดขึ้นของอักขระ ch ใน str จากนั้นเราจะหารความยาวของ str ด้วย N เราจะได้จำนวนซ้ำทั้งหมดของ str ภายในอักขระ N ตัวด้วย (N / ความยาวของ str) ดังนั้นจำนวนครั้งของ ch ในการทำซ้ำเหล่านั้นจะเป็นการคูณอย่างง่าย สำหรับอักขระที่เหลือ (N % ความยาวของ str) ให้นับ ch ใน str อีกครั้งและเพิ่มไปยังจำนวนก่อนหน้า

  • ใช้สตริง str.

  • ใช้ n เป็นจำนวนเต็ม ch เป็นอักขระและความยาวของ str เป็นจำนวนเต็ม

  • ฟังก์ชันอุบัติการณ์_char(สตริง str, int length, int n, char ch) รับ str, ch, n และความยาวของ str และคืนค่าจำนวน ch ใน n ตัวแรกในสตริงซ้ำ str.

  • นับเริ่มต้นเป็น 0

  • ใช้สำหรับการนับวนซ้ำของ ch ใน str สำหรับแต่ละ str[i]==ch ให้นับจำนวนที่เพิ่มขึ้น

  • จำนวนซ้ำของ str ใน n จะเป็น occ=n / ความยาว

  • จำนวนครั้งของ ch ในการทำซ้ำเหล่านี้จะถูกนับ * occ.

  • สำหรับอักขระความยาว n % ที่เหลือของ str ให้ตรวจสอบว่า str[i]==ch หรือไม่ ถ้าใช่ ให้นับจำนวนที่เพิ่มขึ้น

  • ผลตอบแทนนับเป็นผลลัพธ์

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;
int occurrences_char(string str, int length, int n, char ch){
   int count = 0;
   for (int i = 0; i < length; i++){
      if (str[i] == ch){
         count++;
      }
   }
   int occ = n / length;
   count = count * occ;
   for (int i = 0; i < n % length; i++){
      if (str[i] == ch){
         count++;
      }
   }
   return count;
}
int main(){
   string str = "TPTTTT";
   char ch = 'T';
   int n = 12;
   int length = str.size();
   cout<<"Count of occurrences of a character in a repeated string are: "<<occurrences_char(str, length, n, ch);
   return 0;
}

ผลลัพธ์

หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -

Count of occurrences of a character in a repeated string are − 10