মান করুন আমাদের একটি ছোট হাতের অক্ষরের স্ট্রিং S এবং একটি পূর্ণসংখ্যা অ্যারে shifts দেওয়া আছে। একটি অক্ষর শিফট করার মানে বর্ণমালায় পরের অক্ষরে যাওয়া, z-এর জন্য হবে a। এখন প্রতিটি shifts[i] = x এর জন্য, আমরা S-র প্রথম i+1টি অক্ষরকে x বার শিফট করতে চাই। সমস্ত শিফট প্রয়োগ করার পর চূড়ান্ত স্ট্রিং খুঁজে বের করতে হবে।
যদি স্ট্রিং হয় "abc" এবং shifts = [3,5,9], তবে প্রথম ১টি অক্ষর ৩ বার শিফট করলে হবে "dbc", প্রথম ২টি অক্ষর ৫ বার শিফট করলে হবে "igc", এবং প্রথম ৩টি অক্ষর ৯ বার শিফট করলে হবে "rpl", যা চূড়ান্ত উত্তর।
এটি সমাধান করার জন্য নিচের ধাপগুলি অনুসরণ করুন −
i = shifts.size() - 2থেকে 0 পর্যন্তshift[i] := shift[i] + shift[i + 1]shift[i] := shift[i] mod 26
i = 0থেকেS.size() - 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