เราได้รับชุดตัวอักษร ภารกิจคือการค้นหาอักขระที่มีการทำซ้ำติดต่อกันนานที่สุดที่เกิดขึ้นในสตริง มาทำความเข้าใจกับตัวอย่างกัน
ป้อนข้อมูล − 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