কম্পিউটার

C++ এ প্রদত্ত দিকনির্দেশে যাওয়ার পরে শুরুর অবস্থানে ফিরে আসা সম্ভব কিনা তা পরীক্ষা করুন


ধরুন আমরা অবস্থানে আছি (0, 0) আমাদের কাছে একটি স্ট্রিং চারটি অক্ষর ব্যবহার করে ধারাবাহিক দিক নির্দেশ করে। প্রদত্ত সমস্ত দিক বিবেচনা করে আমরা (0, 0) অবস্থানে ফিরে যেতে পারি কিনা তা আমাদের পরীক্ষা করতে হবে। প্রতীকগুলি হল

  • পূর্বের জন্য ই
  • পশ্চিমের জন্য W
  • উত্তরের জন্য N
  • S দক্ষিণের জন্য।

সুতরাং, যদি ইনপুটটি "EENWWS" এর মতো হয়, তাহলে আউটপুটটি সত্য হবে, পূর্বে দুটি ইউনিট সরান, তারপর উত্তরে যান, তারপর পশ্চিম দুটি ইউনিট তারপর আবার দক্ষিণে, তাই এটি হল শুরুর অবস্থান৷

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

  • l :=মুভ অ্যারের আকার
  • যদি l 0 এর সমান হয়, তাহলে −
    • সত্য ফেরত দিন
  • lft :=0, আপ :=0
  • আরম্ভ করার জন্য i :=0, যখন i করুন
  • যদি চলন[i] 'W' এর মত হয়, তাহলে −
    • (lft 1 দ্বারা বাড়ান)
  • যদি চলন[i] 'E' এর মত হয়, তাহলে −
    • (1 দ্বারা lft কমান)
  • যদি চলন[i] 'N' এর মত হয়, তাহলে −
    • (1 দ্বারা বৃদ্ধি)
  • যদি সরানো [i] 'S' এর মত হয়, তাহলে:
    • (1 দ্বারা হ্রাস)
  • যদি lft 0 এর মত হয় এবং up 0 এর সমান হয়, তাহলে −
    • সত্য ফেরত দিন
  • মিথ্যে ফেরত দিন
  • উদাহরণ (C++)

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

    #include <bits/stdc++.h>
    using namespace std;
    class Solution {
       public:
       bool solve(string moves) {
          int l = moves.length();
             if (l == 0) {
                return true;
             }
             int lft = 0, up = 0;
             for (int i = 0; i < l; i++) {
                if (moves[i] == 'W') {
                   lft++;
                }
                if (moves[i] == 'E') {
                   lft--;
                }
                if (moves[i] == 'N') {
                   up++;
                }
                if (moves[i] == 'S') {
                   up--;
                }
             }
             if (lft == 0 && up == 0) {
                return true;
             }
             return false;
          }
       };
    }
    main(){
       Solution ob;
       cout << (ob.solve("EENWWS"));
    }

    ইনপুট

    "EENWWS"

    আউটপুট

    1

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

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

    3. C++ এ প্রদত্ত স্ট্রিং থেকে সম্ভাব্য দৈর্ঘ্যের সাব-স্ট্রিংগুলির গণনা

    4. C++ এ প্রদত্ত আকারের আয়তক্ষেত্রের ভিতরে সম্ভাব্য রম্বির সংখ্যা গণনা করুন