हमें एक एन्कोडेड स्ट्रिंग दी गई है, और हमें इसे एक फ़ंक्शन के माध्यम से प्रोसेस करना है जो इसकी डीकोडेड स्ट्रिंग लौटाता है।
एन्कोडिंग नियम है -
n[encodedString], जहां वर्गाकार कोष्ठक के अंदर encodedString को ठीक n बार दोहराया जा रहा है।
और 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