এই সমস্যায়, আমাদেরকে অক্ষরগুলির একটি স্ট্রিং দেওয়া হয়েছে এবং আমাদের একই স্ট্রিংটি এমনভাবে প্রিন্ট করতে হবে যাতে দুই বা ততোধিক অক্ষর পরপর হলে সেগুলিকে এক লাইনে একসাথে প্রিন্ট করতে হবে অন্যথায় সেগুলিকে বিভিন্ন লাইনে প্রিন্ট করুন যেমন একটি লাইন বিরতি দিয়ে।
ধারণাটি আরও ভালভাবে বোঝার জন্য একটি উদাহরণ নেওয়া যাক,
Input : abcxstk Output : abc x st k
ব্যাখ্যা − যেহেতু abc একটি ক্রম তারা একটি লাইন মুদ্রিত হয়. তারপর x আসে যা ক্রমানুসারে নয়, তাই আমরা এখানে একটি লাইনব্রেক যোগ করি। এর পরের হল s যা x এর সাথে একটি সিকোয়েন্স নয় তাই আমরা একটি লাইনব্রেক যোগ করি। পরেরটি হল টি যা 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