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

C++-এ উদগম থেকে সর্বোচ্চ দূরত্ব: L, R, ? স্ট্রিং প্রক্রিয়া

একটি স্ট্রিং দেওয়া আছে যেখানে প্রতিটি ক্যারেক্টার 'L', 'R' বা '?'। 'L' = বামে ১ ইউনিট, 'R' = ডানে ১ ইউনিট, '?' = 'L' বা 'R' যেকোনোটি। ০ থেকে শুরু করে '?'-গুলো অপ্টিমালি বাছাই করে সর্বোচ্চ দূরত্ব বের করুন।

উদাহরণ

ইনপুট: "LLRRL??"

প্রক্রিয়া: L=3, R=2, ?=2। সব '?'-কে 'L' করলে: বামে ৫, ডানে ২ → দূরত্ব = ৩।

আউটপুট: 3

সূত্র

উত্তর = |L - R| + ?

কারণ সব '?'-কে Mehr-numbered দিকের দিকে দিলে দূরত্ব সর্বোচ্চ হয়।

C++ বাস্তবায়ন

#include <bits/stdc++.h>
using namespace std;

class Solution {
public:
    int solve(string s) {
        int op = 0, l = 0, r = 0;
        for (char c : s) {
            if (c == 'L') l++;
            else if (c == 'R') r++;
            else op++;
        }
        return max(l, r) - min(l, r) + op;
    }
};

int main() {
    Solution ob;
    cout << ob.solve("LLRRL??");
    return 0;
}

সময় জটিলতা

O(n) - স্ট্রিং একবার ট্রাভার্স। স্পেস O(1)।

  1. ২D ম্যাট্রিক্স থেকে লিঙ্কড লিস্ট তৈরি করা C++-তে (রিকার্সিভ পদ্ধতি)

  2. C++-এ সব বিল্ডিং থেকে ন্যূনতম দূরত্বে ঘর বানানো (Shortest Distance from All Buildings)

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

  4. সি++-এ প্রি-অর্ডার ট্রভারসাল থেকে ট্রি রিকভার করা