কম্পিউটার টিউটোরিয়াল

C++-এ রোবট মুভমেন্টে অরিজিনে ফেরত আসা (Robot Return to Origin)

একটি রোবট আছে যার শুরুতে পজিশন (0, 0)। এর মুভমেন্ট সিকোয়েন্স দেওয়া থাকলে চেক করতে হবে সেটি সব মুভ সম্পন্ন করার পর (0, 0)-এ ফিরে আসে কিনা।

মুভ সিকোয়েন্স স্ট্রিং আকারে দেওয়া থাকে। moves[i] এর মান: R (ডান), L (বাম), U (উপর), D (নিচ)। রোবট অরিজিনে ফিরে আসলে true, অন্যথায় false রিটার্ন করুন।

ইনপুট "RRULLD" হলে আউটপুট true। ডান দুই ইউনিট, উপরে এক, বাম দুই, নিচে এক - আবার শুরুর পজিশন।

সমাধানের ধাপসমূহ

  • l := moves.length()
  • যদি l == 0, true রিটার্ন করুন
  • lft := 0, up := 0
  • প্রতিটি i এর জন্য:
    • 'L' হলে lft++
    • 'R' হলে lft--
    • 'U' হলে up++
    • 'D' হলে up--
  • যদি lft==0 এবং up==0 হয়, true রিটার্ন করুন
  • false রিটার্ন করুন

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
    bool judgeCircle(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] == 'L') { lft++; }
            if (moves[i] == 'R') { lft--; }
            if (moves[i] == 'U') { up++; }
            if (moves[i] == 'D') { up--; }
        }
        if (lft == 0 && up == 0) { return true; }
        return false;
    }
};
int main(){
    Solution ob;
    cout << (ob.judgeCircle("RRULLD"));
}

ইনপুট

"RRULLD"

আউটপুট

1
  1. C++-এ বাইসিমেট্রিক ম্যাট্রিক্স (Bisymmetric Matrix)

  2. C++-এ N-কুইন (N-Queen) সমস্যা সমাধান

  3. C++-এ void ফাংশন থেকে রিটার্ন (Return from void functions in C++)

  4. C++-এ "অবজেক্ট রিটার্ন" কীভাবে করবেন?