কম্পিউটার

C++ এ প্রদত্ত স্ট্রিং থেকে দিকটি খুঁজুন


ধরুন আমাদের একটি স্ট্রিং আছে যেখানে শুধুমাত্র L এবং R রয়েছে, এটি যথাক্রমে বাম ঘূর্ণন এবং ডান ঘূর্ণন নির্দেশ করে, আমাদের পিভটের চূড়ান্ত দিকটি খুঁজে বের করতে হবে। এখানে দিকনির্দেশ হল উত্তর(N), পূর্ব(E), দক্ষিণ(S) এবং পশ্চিম(W)। আমরা অনুমান করছি যে পিভটটি একটি কম্পাসে উত্তর(N) দিকে নির্দেশিত।

সুতরাং, যদি ইনপুটটি "RRLRLLR" এর মতো হয়, তাহলে আউটপুট হবে E, প্রাথমিক দিকটি N হিসাবে, RR S নির্দেশ করবে, তারপর LR আবার একই N নির্দেশ করবে, তারপর LL পূর্ববর্তী অবস্থান N নির্দেশ করবে, তারপর R ই নির্দেশ করবে। তাই E হল ফাইনাল।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • গণনা :=0

  • দিক:=একটি ফাঁকা স্ট্রিং

  • আরম্ভ করার জন্য i :=0, যখন i − s এর দৈর্ঘ্য, আপডেট করুন (i 1 দ্বারা বাড়ান), করবেন −

    • যদি s[i] 'L' এর মত হয়, তাহলে −

      • (গণনা 1 দ্বারা হ্রাস করুন)

    • অন্যথায়

      • (গণনা 1 দ্বারা বৃদ্ধি করুন)

  • যদি গণনা> 0 হয়, তাহলে −

    • গণনা মোড 4 যদি 0 এর মত হয়, তাহলে −

      • নির্দেশনা :="N"

    • অন্যথায় যখন গণনা মোড 4 1 এর মত হয়, তখন −

      • নির্দেশনা :="E"

    • অন্যথায় যখন গণনা মোড 4 2 এর মত হয়, তখন −

      • নির্দেশনা :="S"

    • অন্যথায় যখন গণনা মোড 4 3 এর মত হয়, তখন −

      • নির্দেশনা :="W"

  • যদি গণনা <0, তাহলে −

    • গণনা মোড 4 যদি 0 এর মত হয়, তাহলে −

      • নির্দেশনা :="N"

    • অন্যথায় যখন গণনা মোড 4 -1 এর মত হয়, তখন −

      • নির্দেশনা :="W"

    • অন্যথায় যখন গণনা মোড 4 -2 এর মত হয়, তখন −

      • নির্দেশনা :="S"

    • অন্যথায় যখন গণনা মোড 4 -3 এর মত হয়, তখন −

      • নির্দেশনা :="E"

  • ফেরার দিক

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

#include<bits/stdc++.h>
using namespace std;
string get_dir(string s) {
   int count = 0;
   string direction = "";
   for (int i = 0; i < s.length(); i++){
      if (s[0] == '\n')
         return NULL;
      if (s[i] == 'L')
         count--;
      else
         count++;
   }
   if (count > 0){
      if (count % 4 == 0)
         direction = "N";
      else if (count % 4 == 1)
         direction = "E";
      else if (count % 4 == 2)
         direction = "S";
      else if (count % 4 == 3)
         direction = "W";
   }
   if (count < 0){
      if (count % 4 == 0)
         direction = "N";
      else if (count % 4 == -1)
         direction = "W";
      else if (count % 4 == -2)
         direction = "S";
      else if (count % 4 == -3)
         direction = "E";
   }
   return direction;
}
int main() {
   string s = "RRLRLLR";
   cout << (get_dir(s));
}

ইনপুট

"RRLRLLR"

আউটপুট

E

  1. C++ ব্যবহার করে প্রদত্ত বিন্দু থেকে সম্ভাব্য চতুর্ভুজের সংখ্যা নির্ণয় করুন

  2. C++ এ একটি গ্রিডে প্রদত্ত দিকের সম্ভাব্য চালগুলি গণনা করুন

  3. একটি প্রদত্ত অনুক্রমের দীর্ঘতম উপসর্গ মিল খুঁজে পেতে C++ প্রোগ্রাম

  4. একটি স্ট্রিং এর দৈর্ঘ্য খুঁজে বের করার জন্য C++ প্রোগ্রাম