W rzeczywistości nie zainspirowany ani przez Atalash Self Palindromes, ani przez Uogólniony kalkulator Gematria .
Biorąc pod uwagę ciąg s długości n , wypisz sekwencję Revu'a , która jest pierwszym znakiem s , pierwszymi dwoma znakami s , ... pierwszymi n –2 znakami s , pierwszymi n –1 znakami s , całe s .
Ciąg będzie składał się tylko ze znaków Unicode (dowolne kodowanie, które chcesz), które mają silną kierunkowość i znajdują się w zakresie od 0x0000 do 0xFFFF. Nie wystąpią jednak znaki sterujące kierunkowością. Wszystkie znaki w dowolnym ciągu będą miały tę samą kierunkowość.
Możesz powrócić w notacji tablicowej ["t","te","tes","test"]
jako ciąg rozdzielony spacjami "t te tes test"
, jako tekst wielowierszowy t
te
tes
test
, wstępnie sformatowana tablica
t te tes testlub coś podobnego. Ilości odstępów początkowych, separujących i końcowych nie są ważne, podobnie jak końcowe znaki nowej linii. Zapytaj w razie wątpliwości.
Wprowadzanie danych od prawej do lewej musi skutkować wyjściem od prawej do lewej w odpowiedniej kolejności:
Wejście: "נחמן"
Wyjście: "נ נח נחמ נחמן"
lub
נ נח נחמ נחמןLub
["נ","נח","נחמ","נחמן"]
. Wśród nieprawidłowe wyniki są "נחמן נחמ נח נ"
, "ן מן חמן נחמן"
i "נחמן חמן מן ן"
.
JavaScript (ES6),
272625 bajtówZaoszczędzono jeden bajt dzięki @nicael i @ MartinBüttner, jeden dzięki @Neil
Wykorzystuje niektóre wbudowane funkcje funkcji JS
.replace
. W szczególności zamiennik$`
staje się wszystkim poprzedzającym dopasowaną postać. Użycie wyrażenia regularnego/.?/g
zamiast/./g
oznacza, że pasuje również do pustego łańcucha na końcu.źródło
f=x=>x.replace(/.?/g,"$
")`. Dostajesz dodatkowe wiodące miejsce, ale jest to dozwolone.Japt,
104 bajtówNie zdawałem sobie sprawy, że skumulowane zmniejszenie byłoby tak przydatne w tym przypadku. :-)
Dane wyjściowe w postaci tablicy, domyślnie rozdzielanej przecinkami. Jeśli nie jest to dozwolone, zamiast tego użyj tego 6-bajtowego kodu:
Wypróbuj online!
Jak to działa
źródło
Brainfuck, 40 bajtów
Moja konsola nie obsługuje znaków od prawej do lewej, ale nie sądzę, aby zadziałało: c
Nie golfowany:
źródło
Siatkówka,
117 bajtówDane wyjściowe są oddzielone spacjami, z wiodącą spacją i końcowym podawaniem linii.
Wypróbuj online!
źródło
perl -pE 's/./$
$ & \ n / g ''. (Wiem, że spóźniłem się 11 miesięcy)Python, 35
Nie można znaleźć sposobu
and/or
na uproszczenie rekurencji, ponieważ[]
jest to fałsz.Rozwiązanie rekurencyjne, zwraca listę ciągów.
Wypróbuj online
źródło
Prolog (SWI),
6049 bajtówKod:
Wyjaśniono:
prefiks atom z X ustawionym na wejście, a S jako zmienna daje 1 prefiks atomu X zaczynającego się od pustego atomu.
findall pobiera wszystkie rozwiązania i umieszcza je na liście.
[_ | R] wyrzuca głowę (pusty atom) i przechowuje ogon w R.
Przykłady:
Wypróbuj online tutaj
Edycja: zapisany 11 bajtów poprzez zapisywanie jedynie ogon R .
źródło
Pyth, 3
Wbudowany prefiks załatwia sprawę.
Pakiet testowy
źródło
GNU Sed, 21 lat
Wynik obejmuje +1 dla
-E
opcji sed:Działa dla LTR, ale nie RTL - tego mi brakowało.. Właściwie to nie działa, po prostu nie RTL renderowania poprawnie w moim terminalu. Działa dobrze z IO przeglądanym w rozsądnym edytorze tekstu (np. Emacs). Działa również w Ideone:Wypróbuj online.
źródło
Brachylog , 5 bajtów (niekonkurencyjny)
Wypróbuj online!
Wyjaśnienie
Ciągi od prawej do lewej wydają się działać poprawnie, nawet jeśli nigdy ich nie rozważałem.
źródło
@[
i@w
zostały wdrożone koniecznie po kwietniu / maju 2016 r. Dokładną datę można znaleźć w zobowiązaniach Github, ale na pewno nie wcześniej niż przed przesłaniem tego wyzwania.CJam, 9 bajtów
Wyjście jest oddzielone od linii.
Sprawdź to tutaj.
Wyjaśnienie
źródło
Ll{+_p}/;
ma taką samą długość, publikuję, ponieważ nie jestem pewien, czy ktoś z większym doświadczeniem może bardziejJavaScript, 36 bajtów
Próbny:
Zasadą jest odwzorowanie i wyprowadzenie wycinka ciągu od pierwszego znaku do każdego znaku w słowie. Zaskakujące, działa to doskonale również dla ciągów RTL, nie wymaga optymalizacji.
źródło
Moja konsola nie obsługuje znaków od prawej do lewej, ale nie sądzę, aby zadziałało: c
C, 74 bajty (2. pozycja)
Nie golfowany:
źródło
Moja konsola nie obsługuje znaków od prawej do lewej, ale nie sądzę, aby zadziałało: c
C, 105 bajtów (3. wpis)
Nie golfowany:
źródło
TI-BASIC, 18 bajtów
Nieprawidłowe technicznie: TI-BASIC nie obsługuje Unicode.
Nazwij to
prgmA
i wprowadź za pomocąAns
.Rekursja programu byłaby krótsza, ale nie byłoby sposobu na zainicjowanie zmiennych. Dlatego wyświetlamy podciąg danych wejściowych przy każdej iteracji. Dane wejściowe nigdy nie są nadpisywane, ponieważ Disp nie zwraca wartości.
Ostatecznie program kończy się błędem po wydrukowaniu całego łańcucha.
źródło
Python, 54 bajtów
źródło
Java 7,
9592 bajtówPoprzednia odpowiedź ( 95 bajtów ):
Próbowałem podejścia rekurencyjnego, ale tak naprawdę nie udało mi się go uruchomić. Być może zrobi to ktoś inny (krótszy niż pętla for).
Przypadki bez golfa i testy:
Wypróbuj tutaj.
Wynik:
źródło
Dip , 1 bajt (niekonkurujący)
Wyjaśnienie:
źródło
MATL , 8 bajtów
Używa bieżącej wersji (8.0.0) języka / kompilatora
Przykład
Wyjaśnienie
źródło
Mathematica, 29 bajtów
DO ZROBIENIA: wyjaśnienie
źródło
𝔼𝕊𝕄𝕚𝕟, 7 znaków / 16 bajtów
Try it here (Firefox only).
Prawdopodobnie jest to gdzieś wbudowane - po prostu go nie znalazłem.
Wyjaśnienie
źródło
JavaScript ES6, 29 bajtów
To nic nie wygrywa, ale jest to proste rozwiązanie.
źródło
Pyth, 11 bajtów
Wypróbuj to
Wyjaśnienie
źródło
Python, 32 bajty
Funkcja rekurencyjna, która generuje ciąg oddzielony spacją z wiodącą spacją.
34-bajtowy program (Python 2):
źródło
V , 5 bajtów (niekonkurujące)
Wypróbuj online!
Ten język jest nowszy niż wyzwanie, co czyni tę odpowiedź niekonkurencyjną. Wyjaśnienie:
źródło
PowerShell v2 +, 28 bajtów
Pobiera dane wejściowe
$args[0]
, rzuca je jakochar
tablicę, potokuje znaki w pętli|%{...}
. Każda iteracja, na którą kumulujemy się$o
poprzez+=
obecną postać$_
. To wyrażenie jest enkapsulowane w parens, więc kopia jest umieszczana w potoku. Pod koniec wykonania potok jest opróżniany, przezWrite-Output
co umieszcza się nową linię między elementami.źródło
PHP, 59 bajtów
Wersja online
źródło
Niepożądane, niepotrzebne, oportunistyczne , 9 bajtów
źródło