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

อักขระซ้ำสูงสุดต่อเนื่องกันในสตริงใน C ++


เราได้รับชุดตัวอักษร ภารกิจคือการค้นหาอักขระที่มีการทำซ้ำติดต่อกันนานที่สุดที่เกิดขึ้นในสตริง มาทำความเข้าใจกับตัวอย่างกัน

ป้อนข้อมูล − String[] =“abbbbbbbbcdd”

ผลผลิต − ข

คำอธิบาย − ในสตริงข้างต้น ลำดับต่อเนื่องที่ยาวที่สุดคืออักขระ 'b' นับ b's ติดต่อกันคือ 4

ป้อนข้อมูล − String[] =“aabbcdeeeeed”

ผลผลิต − ข

คำอธิบาย − ในสตริงข้างต้น ลำดับต่อเนื่องที่ยาวที่สุดคืออักขระ 'e' นับ e ติดต่อกันคือ 5.

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

  • อาร์เรย์อักขระ string1[] ใช้เพื่อเก็บสตริงของตัวอักษร

  • ฟังก์ชัน maxRepeating(char str[], int n) รับพารามิเตอร์อินพุตสองตัว สตริงนั้นขนาดของมัน ส่งกลับอักขระที่มีลำดับการทำซ้ำที่ยาวที่สุดต่อเนื่องกัน

  • ข้ามสตริงใน str[] จากตำแหน่งที่ 1 จนถึงตำแหน่งสุดท้าย

  • หาก str[i] และอันถัดไป str[i+1] เท่ากัน ให้นับการเพิ่มขึ้น

  • หากจำนวนนั้นเป็นค่าสูงสุด ให้เก็บค่าใน maxC และอักขระใน repchar

  • ส่งคืน repchar เป็นผลลัพธ์สุดท้าย

ตัวอย่าง

#include <iostream>
#include <iostream>
char maxRepeating(char str[], int n){
   int count = 0;
   char repchar = str[0];
   int maxC = 1;
   for (int i=0; i<n; i++){
      if (str[i] == str[i+1] && i < n-1 )
         maxC++;
      else{
         if (maxC > count){
            count = maxC;
            repchar = str[i];
         }
         maxC = 1;
      }
   }
   return repchar;
}
int main(){
   char string1[] = "aaabbaacccddef";
   int N=14;
   printf("Maximum Consecutive repeating character in string: %c",maxRepeating(string1,N));
   return 0;
}

ผลลัพธ์

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

Maximum Consecutive repeating character in string: a