计算C ++中重复字符串中字符的出现

给定一个字符串str,一个字符和一个正整数N。字符串str无限期重复。目的是找到重复的前N个字符中str中字符出现的次数。

如果str为“ abac”,则字符为ch ='b',N为10。

“ abacabacabacabac……”的前10个字符 b出现两次。

–在同一情况下,请使用str和character ch。

让我们通过示例来理解。

例如

输入值

str = "TPTTTT" ch = 'T' n = 12
输出结果
重复字符串中字符出现的次数为: 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
输出结果
重复字符串中字符出现的次数为: 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

以下程序中使用的方法如下-

在这种方法中,我们将首先计算str中字符ch的出现次数。然后我们将str的长度除以N。我们将在N个字符中得到str的完整重复数除以(N / str的长度)。因此,这些重复中ch的出现次数将是简单的乘法。对于剩余字符(str的N%长度),请再次在str中计算ch并添加到先前的计数中。

  • 采取字符串str。

  • 以n为整数,ch为字符,str的长度为整数。

  • 功能 occurrences_char(string str, int length, int n, char ch) 接受str,ch,n和str的长度,并在重复的字符串str中返回前n个字符的ch计数。

  • 将初始计数设为0。

  • 在str中使用ch进行for循环计数。对于每个str [i] == ch,增加计数。

  • n中str的重复数不为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<<"重复字符串中字符出现的次数为: "<<occurrences_char(str, length, n, ch);
   return 0;
}
输出结果

如果我们运行上面的代码,它将生成以下输出-

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