ในปัญหานี้ เราได้รับสตริงและเราต้องหาอักขระทั้งหมดที่ซ้ำกันพร้อมกับจำนวนที่เกิดขึ้นในสตริง
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน −
Input: TutorialsPoint Output: t (3) o (2) i (2)
คำอธิบาย − ความถี่ของการเกิดขึ้นของอักขระแต่ละตัวคือ t → 3; ยู → 1; o → 2; r → 1; ผม → 2; ก → 1; s → 1; n → 1.
เพื่อแก้ปัญหานี้ เราจะค้นหาจำนวนอักขระและเก็บไว้ในอาร์เรย์จากสตริง แล้วพิมพ์อักขระและเหตุการณ์ที่ความถี่ มันมากกว่า 1
ตัวอย่าง
# include <iostream>
using namespace std;
# define NO_OF_CHARS 256
class duplicate_char{
public :
void charCounter(char *str, int *count){
int i;
for (i = 0; *(str + i); i++)
count[*(str + i)]++;
}
void printDuplicateCharacters(char *str){
int *count = (int *)calloc(NO_OF_CHARS, sizeof(int));
charCounter(str, count);
int i;
for (i = 0; i < NO_OF_CHARS; i++)
if(count[i] > 1)
printf("%c\t\t %d \n", i, count[i]);
free(count);
}
};
int main(){
duplicate_char dupchar ;
char str[] = "tutorialspoint";
cout<<"The duplicate characters in the string\n";
cout<<"character\tcount\n";
dupchar.printDuplicateCharacters(str);
return 0;
} ผลลัพธ์
อักขระที่ซ้ำกันในจำนวนอักขระสตริง
i 2 o 2 t 3