JavaScriptで美しい数値文字列を決定する
数値文字列strは、次の条件を満たす2つ以上の正の整数のシーケンスarrに分割できる場合、美しい文字列と呼ばれます-
-
arr [i] --arr [i --1] =1、シーケンスのインデックス内の任意のiに対して、つまり、シーケンス内の各要素が前の要素よりも多い。
-
シーケンスのどの要素にも先行ゼロを含めることはできません。たとえば、「50607」をシーケンス[5、06、07]に分割できますが、06と07には先行ゼロがあるため、美しくありません。
-
シーケンスの内容を並べ替えることはできません。
例-
入力文字列が-
の場合const str = '91011';
その場合、出力は-
になります。const output = true;
目的のシーケンスは[9、10、11];
であるため例
このためのコードは-
になりますconst str = '91011'; const isBeautiful = (str) => { let i = 1; let count=0; const { length } = str; while(i <= length / 2){ let check = true; let j = i; let left = BigInt(str.substring(0,j)); let nextRange = (left + 1n).toString().length; while(j + nextRange <= length){ let right=BigInt(str.substring(j,j+nextRange)); if(left === right-1n){ left=right; j+=nextRange; nextRange=(left+1n).toString().length; count=j; }else{ check=false; break; } }; if(check === true && count === length){ return true; } i++; }; return false; }; console.log(isBeautiful(str));
出力
そして、コンソールの出力は-
になりますtrue
-
マジックストリング: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
-
JavaScriptで数値文字列を0と1の文字列にエンコードする
問題 10進数を表す文字列を受け取るJavaScript関数を作成する必要があります。 この関数は、次のルールに基づいて、この10進数を2進数に変換/エンコードする必要があります。 nの各桁dについて kをdのビット数とします 数字0のk-1倍の後に数字1を書きます 数字dをバイナリ文字列として書き込みます。右端のビットが最下位です 最後に、b)とc)の結果を連結して、dのコーディングを取得します 最後に、nの桁に対して得られたすべての結果を連結します。 したがって、コード2を0110として、3を0111としてコーディングします 例 以下はコードです- const str =