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

พิมพ์อักขระต่อเนื่องกันเป็นบรรทัดใน C++


ในปัญหานี้ เราได้รับสตริงของอักขระและเราต้องพิมพ์สตริงเดียวกันในลักษณะที่ว่าหากอักขระสองตัวหรือมากกว่าต่อเนื่องกัน ให้พิมพ์รวมกันเป็นบรรทัดเดียว มิฉะนั้นให้พิมพ์เป็นบรรทัดต่างๆ เช่น มีตัวแบ่งบรรทัด

มาดูตัวอย่างเพื่อทำความเข้าใจแนวคิดกันดีกว่า

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