কম্পিউটার

একটি স্ট্রিং দুটি জায়গায় ঘুরিয়ে অন্য একটি স্ট্রিং পাওয়া যায় কিনা তা পরীক্ষা করতে C++ এ একটি প্রোগ্রাম লিখুন


ধরুন আমরা দুটি স্ট্রিং ‘a’ এবং ‘b’ দিয়েছি, কাজটি হল আমরা স্ট্রিং ‘a’ কে ঠিক দুটি জায়গায় ঘড়ির কাঁটার বিপরীত দিকে বা ঘড়ির কাঁটার দিকে ঘুরিয়ে স্ট্রিং ‘b’ পেতে পারি কিনা তা খুঁজে বের করা। উদাহরণস্বরূপ,

ইনপুট-1

a = google
b = legoog

আউটপুট

True

ব্যাখ্যা − স্ট্রিং 'গুগল'কে দুটি জায়গায় ঘোরানো যায় কাঁটার বিপরীত দিকে, যার ফলে স্ট্রিং 'লেগুগ' হয়। সুতরাং, আমরা সত্য ফিরে.

ইনপুট-2

a = tuorialst
b = tutorials

আউটপুট

False

ব্যাখ্যা - অন্য একটি স্ট্রিং 'টিউটোরিয়াল' পেতে স্ট্রিং 'টিউরিয়ালস্ট'কে কোনো দিক দিয়ে দুটি জায়গায় ঘোরানো যাবে না। এইভাবে, আমরা মিথ্যা ফেরত দিই।

এই সমস্যা সমাধানের জন্য ব্যবহৃত পদ্ধতি

প্রদত্ত দুটি স্ট্রিংয়ের জন্য, আমাদের এই পদ্ধতিতে দুটি ক্ষেত্রে রয়েছে -

  • কাঁটার বিপরীত দিকে ঘূর্ণনের জন্য

  • ঘড়ির কাঁটার দিকে ঘূর্ণনের জন্য

প্রথমত, যদি উভয় স্ট্রিং এর দৈর্ঘ্য ভিন্ন হয়, তাহলে মিথ্যা ফেরত দিন। অন্যথায়, যদি উভয় স্ট্রিং এর দৈর্ঘ্য ‘2’ এর কম বা সমান হয়, তাহলে আমরা True ফেরত দেব।

অন্য ক্ষেত্রে, আমরা স্ট্রিং ‘b’-এর সাবস্ট্রিং দুটি জায়গায় ঘোরার মাধ্যমে ক্লকওয়াইজ দিক থেকে স্ট্রিং ‘a’-এর সমান কিনা তা পরীক্ষা করব, তারপর আমরা True ফিরব। অন্যথায়, মিথ্যা।

একইভাবে, যদি স্ট্রিং ‘b’ ঘড়ির কাঁটার দিকে ঘোরানোর ফলে এটি স্ট্রিং ‘a’-এর সমান হয়ে যায়, তাহলে ট্রু রিটার্ন করুন, অন্যথায়, আমরা মিথ্যা ফেরত দেব।

  • দুটি ইনপুট স্ট্রিং 'a' এবং 'b'

    নিন
  • একটি বুলিয়ান ফাংশন চেকরোটেড (স্ট্রিং a, স্ট্রিং b) দুটি স্ট্রিং 'a' এবং 'b' নেয় এবং স্ট্রিং 'b'কে ঘড়ির কাঁটার বিপরীত দিকে বা ঘড়ির কাঁটার দিকে ঘোরানোর মাধ্যমে সমান হলে ফেরত দেয়।

  • স্ট্রিং 'a' এবং স্ট্রিং 'b' এর দৈর্ঘ্য পরীক্ষা করুন।

  • স্ট্রিং ‘b’-এর সাবস্ট্রিং খুঁজে বের করুন কাঁটার বিপরীত দিকে দুটি স্থানে ঘোরানোর মাধ্যমে।

  • এখন ফলাফলের সাবস্ট্রিংটি স্ট্রিং 'a'-এর সমান কিনা তা পরীক্ষা করুন এবং সমান হলে সত্যে ফিরে আসুন।

  • ঘড়ির কাঁটার দিকে দুই জায়গায় ঘোরার মাধ্যমে স্ট্রিং ‘b’-এর সাবস্ট্রিং খুঁজুন।

  • এখন ফলাফলের সাবস্ট্রিংটি স্ট্রিং 'a'-এর সমান কিনা তা পরীক্ষা করুন এবং সমান হলে সত্যে ফিরে আসুন।

  • যদি স্ট্রিং সমান না হয়, তাহলে মিথ্যা ফেরত দিন।

উদাহরণ

#include<bits/stdc++.h>
using namespace std;
bool checkRotated(string str1, string str2){
   if (str1.length() != str2.length())
      return false;
   if(str1.length() <= 2 || str2.length() <= 2)
      return (str1 == str2);
   string s1= str2.substr(str2.size()-2, str2.size());
   string s2= str2.substr(0,str2.size()-2);
   string s3= s1+s2;
   if(s3==str1)
      return true;
   string s4= str2.substr(2,str2.size());
   string s5= str2.substr(0,2);
   string s6= s4+s5;
   if(s6==str1)
      return true;
   return false;
}
int main(){
   string a= "google";
   string b="legoog";
   cout<<checkRotated(a,b)<<endl;
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই, তাহলে এটি আউটপুটটিকে

হিসাবে প্রিন্ট করবে
1

যেহেতু উপরের কোডের আউটপুট "True" তাই এটি '1' প্রিন্ট করবে।


  1. C++ এ দুটি বাইনারি স্ট্রিং যোগ করার জন্য প্রোগ্রাম

  2. দুটি স্ট্রিংকে সংযুক্ত করার জন্য C++ প্রোগ্রাম

  3. জাভাতে একটি প্রোগ্রাম লিখুন একটি স্ট্রিং 2টি জায়গায় ঘুরিয়ে অন্য স্ট্রিং প্রাপ্ত করা যায় কিনা তা পরীক্ষা করতে

  4. পাইথনে অন্য স্ট্রিং 2 জায়গায় ঘুরিয়ে একটি স্ট্রিং পাওয়া যায় কিনা তা পরীক্ষা করুন