আমাদের একটি এনকোড করা স্ট্রিং দেওয়া হয়েছে, এবং আমাদের এটিকে একটি ফাংশনের মাধ্যমে প্রক্রিয়া করতে হবে যা এটির ডিকোড করা স্ট্রিং প্রদান করে৷
এনকোডিং নিয়ম হল −
n[encodedString], where the encodedString inside the square brackets is being repeated exactly n times.
এবং n একটি ধনাত্মক পূর্ণসংখ্যা হওয়ার নিশ্চয়তা।
আমরা অনুমান করতে পারি যে ইনপুট স্ট্রিং সর্বদা বৈধ; কোন অতিরিক্ত সাদা স্পেস নেই, বর্গাকার বন্ধনীগুলি সুগঠিত, ইত্যাদি।
যেমন − যদি ইনপুট হয় −
const str = "3[a]2[bc]";
তারপর আউটপুট −
হওয়া উচিতconst output: "aaabcbc";
উদাহরণ
এর জন্য কোড হবে −
const str = "3[a]2[bc]";
const helper = (str = '') => {
return str.replace(/(\d+\[\w+\])/gi, item => {
let match = /(\d+)\[(\w+)\]/.exec(item);
let repeat = parseInt(match[1]);
let pattern = match[2];
let result = "";
while(repeat−− > 0) {
result += pattern;
}
return result;
});
};
const decodeString = function(str) {
while(/\d+\[\w+\]/gi.test(str)) {
str = helper(str);
}
return str;
};
console.log(decodeString(str)); আউটপুট
এবং কনসোলে আউটপুট হবে −
aaabcbc