JavaScriptで2進数を使用して文字列の大文字と小文字を入れ替える
問題
文字列strと数値nを受け取るJavaScript関数を作成する必要があります。この関数は、nを使用して指定された文字列strを変更する必要があります。
nの各ビットは、s-
の各英字の大文字と小文字を入れ替えるかどうかを指定します。ビットが1の場合、大文字と小文字を入れ替えます。 0の場合は、そのままにしておきます。 nの最後のビットで終了したら、最初のビットからやり直します。
そして最後に、このように形成された新しい文字列を返す必要があります。
例
以下はコードです-
const str = 'hey there'; const num = 21; const swapCase = (str = '', num = 1) => { const alphaLength = str .split('') .reduce((acc, val) => val.toLowerCase() !== val.toUpperCase() ? ++acc : acc, 0); let binary = num.toString(2); while(binary.length < alphaLength){ binary += binary; }; let res = ''; for(let i = 0; i < str.length; i++){ const el = str[i]; if(el.toUpperCase() !== el.toLowerCase() && +binary[i] === 1){ if(el.toLowerCase() === el){ res += el.toUpperCase(); }else{ res += el.toLowerCase(); } }else{ res += el; }; }; return res; }; console.log(swapCase(str, num));
出力
以下はコンソール出力です-
HeY TheRe
-
JavaScriptを使用して文字列番号の桁の後半をゼロに変更する
問題 唯一の引数として文字列番号を受け取るJavaScript関数を作成する必要があります。 この関数は、数字の後半が0に変更された入力数値を返す必要があります。 桁数が奇数の場合は、中桁以降を0に変更してください。 例- 938473 → 938000 例 以下はコードです- const num = '938473'; const convertHalf = (num = '') => { let i = num.toString(); let j = Math.floor(i.le
-
JavaScriptを使用してバイナリ文字列の最小フリップを見つける
単調に増加する文字列: 「0」と「1」の文字列は、いくつかの「0」(場合によっては0)と、それに続くいくつかの「1」(場合によっては0)で構成される場合、単調に増加します。 問題 最初で唯一の引数としてバイナリ文字列strを受け取るJavaScript関数を作成する必要があります。 文字列に存在する任意の「0」を「1」に、または任意の「1」を「0」に反転できます。この関数は、Sを単調に増加させるために、最小のフリップ数を返す必要があります。 たとえば、関数への入力が 入力 const str = '00110'; 出力 const output = 1; 出力