Javascript
 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

  1. JavaScript文字列をブール値に変換します

    JavaScriptで文字列をブール値に変換するためのコードは次のとおりです- 例 <!DOCTYPE html> <html> <head> <style>    body {       font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;    } </style> </head> <body> <h1>Converting strin

  2. JavaScriptの同様の文字列グループ

    str1の2つの文字(異なる位置にある)を入れ替えてstr2と等しくなる場合、2つの文字列str1とstr2は類似しています。また、2つの文字列str1とstr2は、等しい場合は類似しています。 たとえば、「tars」と「rats」は類似しており(位置0と2で交換)、「rats」と「arts」は類似していますが、「star」は「tars」、「rats」、または「芸術」。 一緒に、これらは類似性によって2つの接続されたグループを形成します:{tars、 rats、arts}および{star}。 「tars」と「arts」は似ていなくても同じグループに属していることに注意してください。 正式