25
文字列を並べ替え、
文字列を並べ替えると、通常は次のようになります。 ':Iaaceeefggghiiiiklllllmnnooooprrssstttttuuyyyy はい、それがソートされた最初の文でした。 あなたが見ることができるように、繰り返される文字が多い、aa、eee、ttttt、9つのスペースなど。 128最初の複製のASCII値256、2番目、3843番目などにASCII値を追加し、再度並べ替えて新しい文字列(同じ文字を取得するためのモジュラス128)を出力すると、文字列が取得されます。 ':Iacefghiklmnoprstuy aegilnorstuy egilosty iloty lt (単一の先頭スペースと4つの末尾スペースに注意してください)。 文字列は"順ソート"され<space>':I....uy、<space>aeg....uy、<space>egi....ty、<space>iloty、<space>lt、<space>、<space>、<space>、<space>。 数字を含む文字列を使用すると、これを視覚化する方が簡単かもしれません。文字列111222334は「ソート」されたとき:になります123412312。 チャレンジ: 驚くことではありませんが、挑戦は上記の説明に従って文字列をソートするコードを書くことです。 入力文字列には、32〜126の範囲(チルダまでのスペース)の印刷可能なASCII文字のみが含まれると想定できます。 テストケース: **Test cases:** *:Tacest*es*s* If you sort a string you'll typically get something like: ':Iacefghiklmnoprstuy aegilnorstuy egilosty iloty lt Hello, World! !,HWdelorlol #MATLAB, 114 bytes #,14ABLMTbesty 1A f=@(s)[mod(sort(cell2mat(cellfun(@(c)c+128*(0:nnz(c)-1),mat2cell(sort(s),1,histc(s,unique(s))),'un',0))),128),'']; '()*+,-0128:;=@[]acdefhilmnoqrstuz'(),0128@acefilmnorstu'(),12celmnostu'(),12celnstu(),clnst(),cls(),cs(),()()()() これはcode-golfなので、バイト単位でカウントされた各言語の最短コードがrefを獲得します。