কম্পিউটার

রোবট চলাচলের হ্রাসকৃত দিকনির্দেশ স্ট্রিং খুঁজে পেতে C++ কোড


ধরুন আমাদের n অক্ষর সহ একটি স্ট্রিং S আছে। অক্ষরগুলি হয় 'R' বা 'U'। একটি 2D প্লেনে, একটি রোবট ডান বা উপরে যেতে পারে। যখন এটি 'R' হয় তখন এটি ডানদিকে চলে এবং যখন এটি 'U' হয় তখন এটি উপরে চলে যায়। তবে স্ট্রিংটি অনেক বড়, আমরা স্ট্রিংটিকে ছোট করতে চাই। "RU" বা "UR" এর মত একটি জোড়া তির্যক চাল "D" হিসাবে প্রতিস্থাপিত হবে। আমাদের চূড়ান্ত আপডেট করা হ্রাসকৃত স্ট্রিংটির দৈর্ঘ্য খুঁজে বের করতে হবে।

সুতরাং, যদি ইনপুটটি S ="RUURU" এর মত হয়, তাহলে আউটপুট হবে 5, কারণ স্ট্রিংটি হবে "DUD"

পদক্ষেপ

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

ans := 0
n := size of S
for initialize i := 0, when i < n, update (increase i by 1), do:
   if S[i] is not equal to S[i + 1], then:
      (increase i by 1)
   (increase ans by 1)
return ans

উদাহরণ

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

#include <bits/stdc++.h>
using namespace std;
int solve(string S){
   int ans = 0;
   int n = S.size();
   for (int i = 0; i < n; ++i){
      if (S[i] != S[i + 1])
         i++;
      ans++;
   }
   return ans;
}
int main(){
   string S = "RUURU";
   cout << solve(S) << endl;
}

ইনপুট

"RUURU"

আউটপুট

3

  1. C++ এ ডিক্রিপ্ট করা স্ট্রিংয়ের k’th অক্ষর খুঁজুন

  2. C++ এ একটি স্ট্রিং-এ একটি অক্ষরের শেষ সূচক খুঁজুন

  3. C++ এ একটি স্ট্রিংয়ের দৈর্ঘ্য খুঁজে বের করার জন্য 5টি ভিন্ন পদ্ধতি?

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