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

ক্যারেক্টার অ্যারে হিসেবে সংরক্ষিত বাক্যের শব্দগুলোর ক্রম উল্টানো C++-এ


একটি বাক্য ক্যারেক্টার ভেক্টর হিসেবে দেওয়া আছে। লক্ষ্য হল শব্দগুলোর ক্রম উল্টিয়ে দেয়া, কিন্তু শব্দের ভেতরের ক্যারেক্টার অর্ডার একই থাকবে।

প্রথমে পুরো ভেক্টর রিভার্স করা হয়। তারপর স্পেস পাওয়া পর্যন্ত প্রতিটি শব্দ আলাদা করে রিভার্স করা হয়।

উদাহরণ

ইনপুট: {'t','h','e',' ','m','a','n',' ','i','s',' ','n','i','c','e'}

আউটপুট: {'n','i','c','e',' ','i','s',' ','m','a','n',' ','t','h','e'}

C++ কোড উদাহরণ
#include 
using namespace std;

void print_vector(vector v){
    cout << "[";
    for(int i = 0; i < v.size(); i++){
        cout << v[i] << ", ";
    }
    cout << "]" << endl;
}

class Solution {
public:
    void reverseWords(vector& s) {
        reverse(s.begin(), s.end());
        int j = 0;
        int n = s.size();
        for(int i = 0; i < n; i++){
            if(s[i] == ' '){
                reverse(s.begin() + j, s.begin() + i);
                j = i + 1;
            }
        }
        reverse(s.begin() + j, s.begin() + n);
    }
};

int main(){
    Solution ob;
    vector v = {'t','h','e',' ','m','a','n',' ','i','s',' ','n','i','c','e'};
    ob.reverseWords(v);
    print_vector(v);
    return 0;
}
আউটপুট

উপরোক্ত কোড রান করলে আউটপুট:

[n, i, c, e, , i, s, , m, a, n, , t, h, e, ]
  1. অ্যারে রিভার্স করার C প্রোগ্রাম

  2. সি++-এ অ্যারে বিটোনিক (Bitonic) কিনা তা যাচাই করার প্রোগ্রাম

  3. C#-এ স্ট্রিংয়ের শব্দগুলো রিভার্স করা

  4. C#-এ অ্যারে রিভার্স করা