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 =