JavaScriptでサイズを縮小するための文字列のエンコード
問題
唯一の引数として文字列strを受け取るJavaScript関数を作成する必要があります。この関数は、入力文字列をエンコードし、そのサイズを元の文字列と比較して、サイズが小さい文字列を返す必要があります。
特定の文字列をエンコードするルールは-
です。-
n [s]、角括弧内のsは正確にk回繰り返されています。
たとえば、dddは3 [d]にエンコードできますが、3 [d]の長さは4ですが、dddの長さはわずか3文字なので、関数は最終的にdddを返す必要があります。
たとえば、関数への入力が-
の場合const str = 'aabcaabcd';
その場合、出力は-
になります。const output = '2[aabc]d';
例
このためのコードは-
になりますconst str = 'aabcaabcd'; function encode(s) { const { length } = s; const dp = Array(length).fill([]); dp.forEach((el, ind) => { dp[ind] = Array(length).fill(null); }); for(let l = 1; l <= length; l++){ for(let i = 0; i + l <= length; i++){ let j = i + l - 1; dp[i][j] = s.substring(i, j + 1); for (let k = i; k < j ; k ++) { let acc = dp[i][k] + dp[k + 1][j]; if (acc.length < dp[i][j].length) { dp[i][j] = acc; } } let sub = s.substring(i, j + 1); let double = sub + sub; let cut = double.indexOf(sub, 1); if (cut != -1 && cut < sub.length) { let acc = sub.length / cut + "[" + dp[i][i + cut - 1] +"]"; if (acc.length < dp[i][j].length) { dp[i][j] = acc; } } } } let res = dp[0][dp.length - 1]; return res; } console.log(encode(str));
出力
そして、コンソールの出力は-
になります2[aabc]d
-
JavaScriptの文字頻度に基づく文字列のエンコード
問題 最初で唯一の引数として文字列strを受け取るJavaScript関数を作成する必要があります。 この関数は、入力文字列に基づいて新しい文字列を作成する必要があります。新しい文字列の各文字は、元の文字列に1回だけ出現する場合は「(」、元の文字列に複数回出現する場合は「)」です。 そして、capitaliを無視する必要があります たとえば、関数への入力が-の場合 入力 const str = 'Success'; 出力 const output = ')())())'; 例 以下はコードです- const str = 'Succes
-
Pythonでのランレングスエンコーディング
このチュートリアルでは、Pythonでランレングスエンコーディングを作成する方法を学習します。文字列を指定すると、文字と頻度を含む新しい文字列が返されます。 たとえば、文字列 tutorialspoint t3u1o2r1i2a1l1s1p1n1としてエンコードされます 。順序はすべての文字+頻度です 。それらすべてに参加して戻ります。プログラムを作成するには、以下の手順を参照してください。 run_length_encodingという名前で関数を記述します。 OrderedDictを使用して辞書を初期化します 文字の初期カウントを0として取得します。 文字列のすべ