กำหนดสตริง 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