Wyzwanie:
Biorąc pod uwagę ciąg s
znaków a
- z
, A
- Z
, 0
- 9
, dołącz długość s
do siebie, licząc dodatkowe znaki w długości jako część całkowitej długości s
.
Wejście:
Tylko ciąg o dowolnej długości (może być pusty).
Wynik:
Ten sam ciąg znaków, ale z długością dołączoną do końca. Znaki reprezentujące długość należy również liczyć jako część długości. W przypadkach, gdy istnieje wiele prawidłowych długości do dołączenia, wybierz najmniejszą możliwą (patrz przykłady przypadków testowych).
Przypadki testowe:
INPUT -> OUTPUT // Comment
aaa -> aaa4
-> 1 // Empty string
aaaaaaaa -> aaaaaaaa9 // aaaaaaaa10 would also normally be valid, but violates using the smallest number rule mentioned above
aaaaaaaaa -> aaaaaaaaa11
a1 -> a13 // Input can contain numbers at the end of the string, you do not have to handle the fact that it looks like 13 rather than 3.
Longer test case(s):
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa101
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa102
Zasady:
To jest golf golfowy , więc wygrywa najkrótszy kod w bajtach. Standardowe luki są zabronione. Zgłoszenia mogą być całym programem lub funkcją i możesz albo wydrukować wynik na standardowe wyjście, albo zwrócić go jako zmienną z funkcji.
code-golf
string
code-golf
string
random
code-golf
array-manipulation
code-golf
ascii-art
kolmogorov-complexity
random
code-golf
array-manipulation
code-golf
stateful
code-golf
hello-world
code-golf
string
code-golf
interpreter
lisp
code-golf
restricted-source
quine
palindrome
code-golf
ascii-art
random
generation
challenge-writing
ascii-art
random
polyglot
maze
answer-chaining
string
cops-and-robbers
whitespace
code-golf
string
cops-and-robbers
whitespace
code-golf
number
sequence
code-golf
date
code-golf
ascii-art
decision-problem
code-golf
combinatorics
chemistry
code-golf
kolmogorov-complexity
source-layout
radiation-hardening
code-golf
ascii-art
path-finding
maze
code-golf
string
ascii-art
game
animation
code-golf
string
ascii-art
code-golf
ascii-art
kolmogorov-complexity
code-golf
restricted-source
new-years
Jodła
źródło
źródło
Odpowiedzi:
Pyth - 7 bajtów
Wypróbuj online tutaj .
źródło
JavaScript (ES6), 32 bajty
Jak to działa
Zaczynając od
N=0
, testujemy N-ty znak (oparty na 0) ciągu utworzonego z połączenia pierwotnego ciągu wejściowego i reprezentacji dziesiętnejN
. Zwiększamy,N
dopóki ta postać już nie istnieje.Przykład:
Przypadki testowe
Pokaż fragment kodu
źródło
LaTeX, 108/171
\q[] //1
źródło
JavaScript (ES6), 37 bajtów
źródło
Run Code Snippet
się komunikat o błędzie. Nie mam pojęcia o JavaScript - właśnie próbowałemVersion 48.0.2564.97
). Spróbuję tego też z IE. Nie mogę zaktualizować mojego chromowanego - problemy z bezpieczeństwem pakietu OfficeC,
676561 bajtówWandbox
źródło
Lua 5.2, 32 bajty
Gdzie zmienna a jest łańcuchem wejściowym.
źródło
Pyke, 8 bajtów ( stara wersja )
Wyjaśnienie:
Wypróbuj tutaj! (Nowa wersja, 9 bajtów)
źródło
Python 2,
544846 bajtówProste rozwiązanie. Rekurencja okazała się krótsza.
Wypróbuj online
źródło
(s+`n`)[n:]
zan<len(s+`n`)
.Haskell, 46 bajtów
Przykład użycia:
f "aaaaaaaa"
->"aaaaaaaa9"
.Po prostu wypróbuj wszystkie liczby zaczynające się od 0 i wybierz pierwszą, która pasuje.
źródło
Mathematica, 57 bajtów
Funkcja bez nazwy, która przyjmuje tablicę znaków jako dane wejściowe i zwraca ciąg znaków. Wykorzystuje fakt, że jeśli
a
jest długością wejściową, to liczba do dołączenia do niej jesta
powiększona o liczbę cyfr w (a
+ długośća
), a nie tylko oa
dodatkową liczbę cyfra
. Niestety nie dałby właściwej odpowiedzi dla danych wejściowych z pustym ciągiem bez~Max~1
specjalnego przypadku.źródło
Brachylog , 13 bajtów
Wypróbuj online!
Wyjaśnienie
Zasadniczo opis problemu. Spróbuje każdej wartości
L
większej niż długość danych wejściowych, aż znajdzie tę, dla której po połączeniu z danymi wejściowymi jest długość tej konkatenacji.źródło
Brainfuck, 258 bajtów
Wejście musi być zakończone sygnałem liniowym (LF). Działa tylko w przypadku danych wejściowych o długości mniejszej niż 256 (w tym LF).
Wypróbuj online!
Wyjaśnienie
Uwaga: Użyłem kodu z tej odpowiedzi SO do konwersji długości na wyjście ascii; Mam nadzieję, że jest to dopuszczalne na PPCG. To moje pierwsze zgłoszenie do Codegolfa i mój drugi program BF. Informacje zwrotne są mile widziane.
źródło
Siatkówka , 22 bajty
Wypróbuj online!
No cóż, gdyby nie cyfry pojawiające się na wejściu, byłoby to zaledwie 11 bajtów:
źródło
Rubin,
625856 bajtówTestowane w
irb
.Jest prawdopodobnie lepszy sposób, aby to zrobić, ale to była pierwsza rzecz, jaką wymyśliłem. Każda pomoc w grze w golfa będzie mile widziana.
edycja: Zdałem sobie sprawę, że moje użycie nawiasów było nadmierne.
źródło
l
w jednym miejscu. Jeśli wstawisz to, zaoszczędzisz 3 bajtyl=;
. Ale twoje rozwiązanie będzie jeszcze dłuższe niż moje;)Perl 6 ,
4635 bajtówSpróbuj
Rozszerzony:
źródło
05AB1E , 11 bajtów
Dość prosta brutalność:
Wypróbuj online!
źródło
Python, 39 bajtów
Dłuższa forma:
Iteracyjnie w Pythonie 2 (41 bajtów):
Zaczynając
x
jako ciąg wejściowya
, stosuje transformacjęx -> a + str(len(x))
trzy razy. Nadal nie jestem pewien, dlaczego trzy aplikacje są potrzebne, aby zawsze osiągnąć stały punkt.źródło
PHP, 42 bajty
Uruchom z
-r
. Testuj w trybie OnlinePHP .źródło
bash, 47 bajtów
Zapisz to jako skrypt i przekaż ciąg wejściowy jako argument.
To implementacja brutalnej siły: wypróbuj kolejno każdy numer, aż znajdziesz taki, który działa.
źródło
> <> (Ryba) 35 bajtów
Pobiera dane wejściowe na stos, sprawdza długość względem wartości 9 999 999 ... i jeśli długość jest większa niż dodać 1 do długości stosu.
źródło
Haskell ,
6160 bajtówWypróbuj online!
Rozwiązanie rekurencyjne. Stosowanie:
źródło
C #, 77 bajtów
źródło
return(n+(a+1+c))
jakoa=n.Length
?-1
zint c=(a+1).ToString().Length-1
a+1
z powrotem?aa...a100
zamiastaa...a101
dlaa
przypadku testowego 99 .MATL , 11 bajtów
Wypróbuj online! Lub sprawdź wszystkie przypadki testowe .
źródło
Ruby, 51 bajtów (program)
Ruby, 49 bajtów (funkcja)
Program (ostatni znak nowej linii nie jest konieczny i dlatego nie jest oceniany):
Funkcja (ostatnia nowa linia jest punktowana):
źródło
Współczynnik, 55 bajtów
To spacer w parku! Wymyśliłem to w mojej głowie, gdy tylko przeczytałem pytanie.
źródło
Clojure, 72 bajty
źródło
R, 49 bajtów
Całkiem proste rozwiązanie.
źródło
Read 1 item Error in nchar(x + 1) : object 'x' not found
. Znalazłem, że(t<-nchar(a))+...
zadziałało.Wolfram, 56
Biorąc pod uwagę,
l = StringLength[x]
że dołącza sięl + IntegerLength[l + IntegerLength[l]]
dox
.źródło
Labirynt ,
484541 bajtówWypróbuj online!
Zapisane 4 bajty podziękowane @Martin Ender
źródło
ForceLang, 83 bajty
źródło