কম্পিউটার

C++ এ অক্ষর স্থানান্তর করা


ধরুন আমাদের কাছে ছোট হাতের অক্ষরের একটি স্ট্রিং S আছে এবং একটি পূর্ণসংখ্যা অ্যারে স্থানান্তরিত হয়। একটি বর্ণের স্থানান্তর মানে বর্ণমালার পরবর্তী অক্ষর, z এর জন্য, এটি হবে a। এখন প্রতিটি শিফটের জন্য [i] =x, আমরা S, x এর প্রথম i+1 অক্ষরগুলিকে স্থানান্তর করতে চাই। S-তে এই ধরনের সমস্ত পরিবর্তন প্রয়োগ করার পরে আমাদের চূড়ান্ত স্ট্রিংটি খুঁজে বের করতে হবে। সুতরাং যদি স্ট্রিংটি হয় “abc” এবং shifts =[3,5,9], তাহলে S-এর প্রথম 1টি অক্ষর 3 দ্বারা স্থানান্তরিত করার পরে, "dbc" হবে, S-এর প্রথম দুটি অক্ষর 5 দ্বারা স্থানান্তরিত করার পর, আমাদের কাছে "igc" থাকবে। ", এবং S-এর প্রথম 3টি অক্ষর 9 দ্বারা স্থানান্তরিত করে, আমাদের কাছে "rpl" আছে, এবং এটি হল উত্তর৷

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

  • আমি শিফট অ্যারের রেঞ্জ সাইজের জন্য – 2 থেকে 0
      নিচে
    • shift[i] :=shift[i] + shift[i + 1]
    • shift[i] :=shift[i] mod 26
  • আমার জন্য 0 থেকে S – 1 এর আকারের মধ্যে রয়েছে
    • S[i] :=((S[i] – ASCII of a) + shifts[i] mod 26) + ASCII of a
  • রিটার্ন S

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

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   string shiftingLetters(string S, vector<int>& shifts) {
      for(int i = shifts.size() - 2 ;i >=0; i--){
         shifts[i] += shifts[i + 1];
         shifts[i] %= 26;
      }
      for(int i = 0; i < S.size(); i++) {
         S[i] = ( ((S[i] - 'a') + shifts[i]) % 26 + 'a');
      }
      return S;
   }
};
main(){
   vector<int> v = {3,5,9};
   Solution ob;
   cout << (ob.shiftingLetters("abc", v));
}

ইনপুট

"abc"
[3,5,9]

আউটপুট

rpl

  1. C++ এ রেফারেন্স_র্যাপার

  2. C++ এ এনক্যাপসুলেশন

  3. C++ এ শনাক্তকারী

  4. লিনাক্সে C++ এর সেরা IDE কি?