Javascript
 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

  1. JavaScriptの文字列で母音を返す

    アルファベットを含む可能性のある文字列を受け取るJavaScript関数を作成する必要があります。この関数は、文字列に存在する母音の数をカウントして返す必要があります。 例 以下はコードです- const str = 'this is a string'; const countVowels = (str = '') => {    str = str.toLowerCase();    const legend = 'aeiou';    let count = 0; &nbs

  2. マジックストリング:JavaScriptの質問

    問題 マジックストリングstrは、「1」と「2」のみで構成され、次のルールに従います- 文字列strは、文字「1」と「2」の連続する出現回数を連結すると文字列str自体が生成されるため、魔法のようです。 文字列strの最初のいくつかの要素は次のとおりです- str = "1221121221221121122……" 連続する「1」と「2」をstrでグループ化すると、-になります。 1 22 11 2 1 22 1 22 11 2 11 22 ...... 各グループでの「1」または「2」の出現は-です。 1 2 2 1 1 2 1 2