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

การบีบอัดสตริงใน JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับสตริงที่อาจมีอักขระที่ซ้ำกันอย่างต่อเนื่อง

ฟังก์ชันควรบีบอัดสตริงเช่นนี้ −

'wwwaabbbb' -> 'w3a2b4'
'kkkkj' -> 'k4j'

และหากความยาวของสตริงที่บีบอัดมากกว่าหรือเท่ากับสตริงเดิม เราควรส่งคืนสตริงเดิม

ตัวอย่างเช่น −

'aab' สามารถบีบอัดเป็น 'a2b1' ได้ แต่มันเพิ่มความยาวเป็น 4 ดังนั้นฟังก์ชันของเราจะคืนค่า 'aab'

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

const str1 = 'wwwaabbbb';
const str2 = 'kkkkj';
const str3 = 'aab';
const compressString = (str = '') => {
   let res = '';
   let count = 1;
   for(let i = 0; i < str.length; i++){
      let cur = str[i];
      let next = str[i + 1];
      if(cur === next){
         count++;
      }else{
         res += cur + String(count);
         count = 1;
      };
   }
   return res.length < str.length ? res : str;
};
console.log(compressString(str1));
console.log(compressString(str2));
console.log(compressString(str3));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

3a2b4
k4j1
aab