ในปัญหานี้ เราได้รับสตริงของอักขระและเราต้องพิมพ์สตริงเดียวกันในลักษณะที่ว่าหากอักขระสองตัวหรือมากกว่าต่อเนื่องกัน ให้พิมพ์รวมกันเป็นบรรทัดเดียว มิฉะนั้นให้พิมพ์เป็นบรรทัดต่างๆ เช่น มีตัวแบ่งบรรทัด
มาดูตัวอย่างเพื่อทำความเข้าใจแนวคิดกันดีกว่า
Input : abcxstk Output : abc x st k
คำอธิบาย − ตั้งแต่ abc อยู่ในลำดับที่พิมพ์เป็นบรรทัด แล้วก็มา x ซึ่งไม่เรียงตามลำดับ เราจึงเพิ่มตัวแบ่งบรรทัดตรงนี้ ต่อไปคือ s ซึ่งไม่ใช่ลำดับที่มี x ดังนั้นเราจึงเพิ่มการแยกบรรทัด ถัดไปคือ t ซึ่งอยู่ในลำดับโดยที่ s พิมพ์ตามลำดับ ถัดไปคือ k ซึ่งไม่อยู่ในลำดับกับ t ดังนั้นเราจึงเพิ่มตัวแบ่งบรรทัด
ที่นี่ เราจะตรวจสอบองค์ประกอบที่มีองค์ประกอบก่อนหน้าในสตริง ถ้าเรียงตามลำดับก็พิมพ์ตามปกติ มิฉะนั้น พิมพ์องค์ประกอบด้วย ตัวแบ่งบรรทัด
ตัวอย่าง
ตอนนี้ มาสร้างโปรแกรมตามตรรกะนี้กัน
#include <iostream>
using namespace std;
int main(){
string str = "stukfrpq";
cout << str[0];
for (int i=1; str[i]!='\0'; i++){
if ((str[i] == str[i-1]+1) || (str[i] == str[i-1]-1))
cout << str[i];
else
cout << "\n" << str[i];;
}
return 0;
} ผลลัพธ์
stu k f r pq