JavaScriptで文字列内でシフトを実行する
小文字の英字を含む文字列strと、配列arrの配列があるとします。ここでarr [i] =[direction、amount] −
-
方向は0(左シフトの場合)または1(右シフトの場合)になります。
-
amountは、文字列sをシフトする量です。
-
1だけ左シフトすると、sの最初の文字が削除され、最後に追加されます。
-
同様に、1だけ右にシフトすると、sの最後の文字が削除され、先頭に追加されます。
最初の引数として文字列を取り、2番目の引数としてシフトデータを含む配列を受け取るJavaScript関数を作成する必要があります。
関数は配列を反復処理し、文字列で必要なシフトを実行して、最後に新しい文字列を返す必要があります。
例-
入力文字列と配列が-
の場合const str = 'abc'; const arr = [[0, 1], [1, 2]];
その場合、出力は-
になります。const output = 'cab';
なぜなら、
[0,1]は、左に1シフトすることを意味します。「abc」->「bca」
[1,2]は、右に2シフトすることを意味します。「bca」->「cab」
例
このためのコードは-
になりますconst str = 'abc'; const arr = [[0, 1], [1, 2]]; const performShifts = (str = '', arr = []) => { if(str.length < 2){ return str; }; let right = 0 let left = 0; for(let sub of arr){ if(sub[0] == 0){ left += sub[1]; }else{ right += sub[1]; }; }; if(right === left){ return str; } if(right > left){ right = right - left; right = right % str.length; return str.substring(str.length - right) + str.substring(0, str.length - right); }else{ left = left - right; left = left % str.length; return str.substring(left) + str.substring(0,left); }; }; console.log(performShifts(str, arr));
出力
そして、コンソールの出力は-
になりますcab
-
JavaScriptの循環文字列の一意のサブ文字列
問題 S、strがあるとします。これは、文字列の無限のラップアラウンド文字列です- "abcdefghijklmnopqrstuvwxyz". したがって、Sは次のようになります- "...zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd....". strを取り込むJavaScript関数を作成する必要があります。その文字列strを唯一の引数として呼び出しましょう。 この関数は、strの一意の空でない部分文字列がSにいくつ存在するかを調べる必要があります。 この関数は、
-
JavaScriptで時間文字列を修正する
問題 「HH:MM:SS」形式の時間文字列を受け取るJavaScript関数を作成する必要があります。 しかし、それに加えて問題があり、多くのタイムストリングが壊れているため、MM部分が60を超え、SS部分も60を超える可能性があります。 この関数は、文字列に必要な変更を加えて、修正された新しい文字列を返す必要があります。 たとえば- "08:11:71" -> "08:12:11" 例 以下はコードです- const str = '08:11:71'; const rectifyTime = (str = '