Wenn Sie eine Zeichenfolge sortieren, erhalten Sie normalerweise Folgendes:
':Iaaceeefggghiiiiklllllmnnooooprrssstttttuuyyyy
Ja, das war der erste Satz sortiert.
Wie Sie sehen können, gibt es eine Menge von wiederholten Zeichen, aa
, eee
, ttttt
, 9 Räume und so weiter.
Wenn wir 128
zum ASCII-Wert des ersten Duplikats, 256
zum zweiten, 384
zum dritten und so weiter addieren , sortieren Sie es erneut und geben den neuen String aus (Modul 128, um die gleichen Zeichen wiederzuerlangen), erhalten wir den String:
':Iacefghiklmnoprstuy aegilnorstuy egilosty iloty lt
(Beachten Sie das einzelne führende Leerzeichen und die 4 nachfolgenden Leerzeichen).
Die Zeichenfolge wird "sequentiell sortiert" <space>':I....uy
, <space>aeg....uy
, <space>egi....ty
, <space>iloty
, <space>lt
, <space>
, <space>
, <space>
, <space>
.
Es könnte einfacher sein, dies zu visualisieren, wenn wir einen String mit Ziffern darin verwenden. Der String 111222334
wird als „geordnet“ sein: 123412312
.
Herausforderung:
Es ist keine Überraschung, dass die Herausforderung darin besteht, einen Code zu schreiben, der eine Zeichenfolge gemäß der obigen Beschreibung sortiert.
Sie können davon ausgehen, dass die Eingabezeichenfolge nur druckbare ASCII-Zeichen im Bereich 32-126 (Leerzeichen bis Tilde) enthält.
Testfälle:
**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(),()()()()
Dies ist Code-Golf , so dass der kürzeste Code in jeder Sprache , der in Bytes gezählt wird, ref gewinnt .
{'S', 'g', 'i', 'n', 'r', 't'}
in Python ausgeben , da dies "normal" ist "String"
.
{'a','b'}
in Matlab nicht akzeptiert , da Sie ein Zeichen zu jedem der Zeichen wie diese hinzufügen: {'aa','b'}
. Ihre Eingabe und Ausgabe müssen dasselbe Format haben.