Computer >> Máy Tính >  >> Lập trình >> C ++

Đếm số lần xuất hiện của một ký tự trong một chuỗi lặp lại trong C ++


Cho một chuỗi str, một ký tự và một số nguyên dương N. Chuỗi str được lặp lại vô hạn. Mục đích là để tìm số lần xuất hiện của ký tự trong str trong N ký tự đầu tiên của các lần lặp lại.

Nếu str là “abac”, ký tự là ch =‘b’ và N là 10.

Trong 10 ký tự đầu tiên của “abacabacabacabac …….” b xảy ra hai lần.

Lưu ý - Lấy str và ký tự ch trong cùng một trường hợp.

Hãy cho chúng tôi hiểu với các ví dụ.

Ví dụ

Đầu vào

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

Đầu ra

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

Giải thích

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.

Đầu vào

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

Đầu ra

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

Giải thích

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

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau -

Trong cách tiếp cận này, đầu tiên chúng ta sẽ đếm số lần xuất hiện của ký tự ch trong str. Sau đó, chúng ta sẽ chia độ dài của str với N. Chúng ta sẽ nhận được một số lần lặp lại đầy đủ của str trong N ký tự bằng (N / độ dài của str). Vì vậy, số lần xuất hiện của ch trong các lần lặp lại đó sẽ là phép nhân đơn giản. Đối với các ký tự còn lại (N% độ dài của str), hãy đếm lại ch trong str và thêm vào số trước đó.

  • Lấy một chuỗi str.

  • Lấy n là số nguyên, ch là ký tự và độ dài của str là số nguyên.

  • Hàm doesrences_char (chuỗi str, int length, int n, char ch) nhận str, ch, n và độ dài của str và trả về số lượng ch trong n ký tự đầu tiên trong chuỗi str lặp lại.

  • Lấy số lượng ban đầu là 0.

  • Sử dụng số lần xuất hiện vòng lặp for của ch trong str. Đối với mỗi str [i] ==ch, số gia tăng.

  • Không có lần lặp lại str trong n sẽ là void =n / length.

  • Số lần xuất hiện của ch trong những lần lặp lại này sẽ được tính là * Occ.

  • Đối với n% độ dài ký tự còn lại của str, hãy kiểm tra xem str [i] ==ch, nếu có thì số gia tăng.

  • Kết quả là số lượt trả lại.

Ví dụ

#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;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

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