Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ฟังก์ชันถอดรหัสสตริงใน JavaScript


เราได้รับสตริงที่เข้ารหัส และเราจำเป็นต้องประมวลผลผ่านฟังก์ชันที่ส่งคืนสตริงที่ถอดรหัส

กฎการเข้ารหัสคือ −

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