JavaScriptで文字列内のアルファベットを並べ替える
このような単語のコンマ区切りの文字列があるとします-
const str = 'JAY, ROB';
そのような文字列を1つ取り込むJavaScript関数を作成する必要があります。この関数は、文字列内の単語から新しい単語を作成できます。この場合、前のアルファベットは常に次のアルファベットよりも大きくなります(たとえば、AはBよりも大きくなります)
たとえば、上記の文字列では、JAYの最初の文字とROBの最初の文字を比較します。
Rと比較するとJが最初に来るので、新しい単語の最初のアルファベットはJになります。2番目を比較すると、AがRの前に来るので2番目のアルファベットになるので、3番目のアルファベットも同様にRになります。
したがって、最後の単語は「JAROBY」になります。
この例では、2語のみの文字列を使用しましたが、3語以上でも機能するソリューションを作成する必要があることに注意してください。
例
このためのコードは-
になりますconst str = `JAY,ROB,APPLE,AAKO`; const specialSort = (str = '') => { let len = str.replace(/,/g, "").length; const sorter = (str, b) => { if(str === "" || str === null) return 1; if(b === "" || b === null) return −1; if(str === b) return 0; return str < b ? −1 : 1; }; let res = ""; let sorted = str.split(",").sort(sorter); while (res.length < len){ res += sorted[0][0]; sorted[0] = sorted[0].slice(1); sorted = sorted.sort(sorter); } return res; }; console.log(specialSort(str));
出力
そして、コンソールの出力は-
になりますAAAJAKOPPLEROBY
-
マジックストリング: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での頻度による文字列文字の並べ替え
問題 文字列を唯一の引数として受け取るJavaScript関数を作成する必要があります。 関数は、元の文字列に基づいて新しい文字列を準備する必要があります。この文字列では、ほとんどの回数出現する文字が最初に配置され、次に頻度が減少する数字が配置されます。 たとえば、関数への入力が-の場合 const str = 'free'; その場合、出力は-になります。 const output = 'eefr'; 出力の説明: eは2回表示されるため、最初に配置され、次にrとfが配置されます。 例 このためのコードは-になります const str =