Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

マジックストリング: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 2 1 2 2 ......

上記の出現シーケンスは文字列そのものであることがわかります。

入力として整数numが与えられ、マジックストリングstrの最初のnum番号の「1」の数を返す必要があります。

たとえば、関数への入力が-

の場合
const num = 6;

その場合、出力は-

になります。
const output = 3;

出力の説明:

マジックストリングSの最初の6つの要素は「12211」であり、3つの1が含まれているため、3を返します。

このためのコードは-

になります
const num = 6;
const magicalString = (num = 1) => {
   let ind = 12;
   let str = '1221121221221121122';
   while(str.length < num){
      const end = str.substring(str.length - 1) === '2' ? '1' : '2';
      str = parseInt(str.substring(ind, ind + 1)) === 2 ? str + end + end : str + end;
      ind++;
   };
   return (str.substring(0, num).match(/1/g)||[]).length;
};
console.log(magicalString(num));

出力

そして、コンソールの出力は-

になります
3

  1. JavaScriptで指定された長さまで文字列を制限する

    問題 文字列と数値を受け取るJavaScript関数を作成する必要があります。この関数は、指定された文字列の切り捨てられたバージョンを指定された制限まで返し、結果が元の文字列より短い場合は「...」を返します。それ以外の場合、関数は切り捨てられたものがない場合は同じ文字列を返す必要があります。 例 以下はコードです- const str = 'Testing String'; const num = 8; const limitString = (str = '', num = 1) => {    const { length:

  2. JavaScriptの文字列の対応する最短距離

    問題 最初の引数として英語の小文字のアルファベットの文字列strを取り、2番目の引数として文字列strに存在する単一の文字charを受け取るJavaScript関数を作成する必要があります。 この関数は、文字列strの各文字について、charで指定された文字列の最も近い文字からの距離を含む配列を準備して返す必要があります。 たとえば、関数への入力が 入力 const str = 'somestring'; const char = 's'; 出力 const output = [0, 1, 2, 1, 0, 1, 2, 3, 4, 5] 例 以下