কম্পিউটার

C++ এ একটি স্ট্রিং-এ বিপরীত শব্দ


ধরুন আমাদের কয়েকটি শব্দ সহ একটি স্ট্রিং আছে। আমরা স্ট্রিং মধ্যে শব্দ অবস্থান বিপরীত করতে হবে. তাই যদি স্ট্রিংটি হয় "দ্রুত বাদামী শিয়াল একটি অলস কুকুরের উপর লাফিয়ে পড়ে"

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

  • একটি ফাংশন getString() সংজ্ঞায়িত করুন, এটি s ইনপুট হিসাবে নেবে, এটি −

    হিসাবে কাজ করবে
  • i :=0, j :=s – 1

    এর আকার
  • যখন s[i] =‘’ এবং i

  • যখন j>=0 এবং s[j] =‘’, j কমিয়ে 1

  • ret :=খালি স্ট্রিং

  • i <=j এর জন্য, i 1 দ্বারা বাড়ান

    • যদি ret-এর আকার অ-শূন্য হয় এবং ret-এর শেষ উপাদান হয় ‘’ এবং s[i] হয় ‘’, তাহলে পরবর্তী পুনরাবৃত্তির জন্য যান

    • ret :=ret + s[i]

  • reverseWords() নামে আরেকটি পদ্ধতি সংজ্ঞায়িত করুন, এটি s ইনপুট হিসাবে গ্রহণ করবে

  • j :=0

  • I এর জন্য 0 থেকে s – 1 এর আকার, প্রতিটি ধাপে i :=j

    • যদি s[i] ফাঁকা হয়, তাহলে j :=i + 1

    • অন্যথায়

      • যখন j + 1

      • x :=i এবং y :=j

      • যখন x

        • s[x] এবং s[y] বিনিময় করুন, x 1 দ্বারা বৃদ্ধি করুন এবং y 1 দ্বারা বৃদ্ধি করুন

      • 1 দ্বারা j বাড়ান

  • প্রধান পদ্ধতি থেকে, নিম্নলিখিতগুলি করুন -

  • স্ট্রিং s

    বিপরীত করুন
  • বিপরীত শব্দ(গুলি)

  • ফেরত getString(গুলি)

উদাহরণ (C++)

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

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   string reverseWords(string s) {
      reverse(s.begin(), s.end());
      reverseWordss(s);
      return getString(s);
   }
   string getString(string s){
      int i = 0;
      int j = s.size() - 1;
      while(s[i] == ' ' && i < s.size()) i++;
      while(j >= 0 && s[j] == ' ') j--;
      string ret = "";
      for(;i <= j; i++){
         if(ret.size() && ret.back() == ' ' && s[i] == ' ')continue;
         ret += s[i];
      }
      return ret;
   }
   void reverseWordss(string& s){
      int j = 0;
      for(int i = 0; i < s.size() ;i = j){
         if(s[i] == ' '){
            j = i + 1;
         }
         else{
            while(j + 1 < s.size() && s[j + 1] != ' ') j++;
            int x = i;
            int y = j;
            while(x < y){
               swap(s[x], s[y]);
               x++;
               y--;
            }
            j++;
         }
      }  
   }
};
main(){
   Solution ob;
   cout << (ob.reverseWords("The quick brown fox jumps over a lazy dog"));
}

ইনপুট

"The quick brown fox jumps over a lazy dog"

আউটপুট

"dog lazy a over jumps fox brown quick The"

  1. C# এ প্রদত্ত স্ট্রিং-এর বিপরীত শব্দ

  2. C# এ একটি স্ট্রিং বিপরীত

  3. C# প্রোগ্রাম একটি স্ট্রিং মধ্যে শব্দ বিপরীত

  4. পাইথনে একটি প্রদত্ত স্ট্রিং-এর বিপরীত শব্দ