Chúng ta được cung cấp một chuỗi các bảng chữ cái. Nhiệm vụ là tìm ký tự có số lần lặp lại liên tiếp dài nhất xảy ra trong chuỗi. Hãy cùng hiểu với các ví dụ.
Đầu vào - String [] =“abbbabbbbcdd”
Đầu ra - b
Giải thích - Trong chuỗi trên, chuỗi dài nhất liên tiếp có ký tự ‘b’. Đếm số b liên tiếp là 4.
Đầu vào - String [] =“aabbcdeeeeed”
Đầu ra - b
Giải thích - Trong chuỗi trên, chuỗi dài nhất liên tiếp có ký tự ‘e’. Đếm số e liên tiếp là 5.
Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau
-
Mảng ký tự string1 [] được sử dụng để lưu trữ chuỗi bảng chữ cái.
-
Hàm maxRepeating (char str [], int n) nhận hai tham số đầu vào. Bản thân chuỗi, kích thước của nó. Trả về ký tự có chuỗi lặp lại liên tiếp dài nhất.
-
Duyệt chuỗi trong str [] từ vị trí đầu tiên cho đến cuối cùng.
-
Nếu str [i] và str [i + 1] tiếp theo giống nhau, số gia tăng.
-
Nếu số lượng đó là tối đa, hãy lưu trữ giá trị trong maxC và ký tự trong repchar.
-
Trả lại khoản phụ phí là kết quả cuối cùng.
Ví dụ
#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; }
Đầu ra
Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -
Maximum Consecutive repeating character in string: a