壓縮 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

更新於: 2021 年 2 月 27 日

6K+ 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.