Wyzwanie:
Biorąc pod uwagę wszelkie dane, które można wpisać na klawiaturze, przesuń tekst o N znaków.
Oto klawiatura QWERTY do użycia. Możesz zignorować klawisze modyfikujące (Shift, Caps, Enter, Delete i Tab). Gdy dojdziesz do jednej (na przykład |
) pętli z powrotem, |
przejdź do Q
if N = 1
.
Przestrzenie nie muszą być przenoszone (wracają w przestrzeń, gdy pomijasz modyfikatory). Jeżeli zmiana została wykorzystana do wpisania znaku (np !
a @
) zmieniony znak powinien być również wprowadzane za pomocą przesunięcia (tj !
idzie @
nie 2
jeśli N = 1
).
Klawiatury brytyjskie różnią się od tego, ale proszę użyć tego, abyśmy mogli porównać.
Wejście:
Każde zdanie, które można wpisać na powyższej klawiaturze, po którym następuje dodatnia liczba całkowita. Nie ma maksymalnego rozmiaru tej liczby całkowitej.
Wynik:
To samo zdanie, przesunięte przez N.
Przykłady:
My name is Tim 3
?o .f/y [g I[/
Hello World 7
Spgge Oe[g;
I Wi5h I h4d b3773r C@d3ing ski{{s 3
{ T[8l { l7h ,6006u N%h6[.k g'[QQg
To jest kod golfowy, więc wygrywa najkrótszy kod.
N<= 13
skoro będziesz musiał przesunąć maksymalnie o 13, aby powrócić do pierwotnej postaci?Hello World 7
być przykładSpgge Oe[g;
? Obajo
powinni odwzorować tę samą postaćOdpowiedzi:
C, 217 bajtów
Czytelna wersja z białymi znakami, zawiera itp .:
Kod mówi sam za siebie. Tylko tabela odnośników, która odwzorowuje każdą postać na następną, która jest stosowana określoną liczbę razy. Znaczna część kodu służy do parsowania liczby na wejściu.
źródło
05AB1E , 61 bajtów
-1 bajt dzięki Kevin Cruijssen
Wypróbuj online!
źródło
Pyth, 126 bajtów
Wypróbuj online: pakiet demonstracyjny lub testowy
Wyjaśnienie:
źródło
Python 3, 311 bajtów
źródło
" " for c in " "
Python 3,
271255 bajtówLinia bazowa, prawie nie zmieniona, służyła do tworzenia przesuniętych słów w pytaniu.
Wyjaśnienie:
źródło
JavaScript (ES6), 200
216Używając ciągów szablonów, nowe linie są znaczące i zliczane.
Uwaga na temat
replace
: dwa fragmentystring.split('x').map(w=>...)
istring.replace(/[^x]+/g,w=>...)
są równie poprawnymi sposobami wykonywania funkcji dla każdej części w ciągu za pomocą separatora. Używanie nowej linii jako separatora jest przydatne, gdy staje się wyrażenie zastępcze/.+/g
, ponieważ kropka pasuje do każdej innej niż nowa linia. I przy użyciu ciągów szablonów nowe wiersze nie mają dodatkowych kosztów.źródło
CJam, 107 bajtów
Wypróbuj online w interpretatorze CJam .
Jak to działa
źródło
Galaretka , 67 bajtów
Wypróbuj online!
Diadadicowe ogniwo przyjmujące ciąg za lewy argument i liczbę miejsc do przesunięcia jako prawy argument.
źródło
Python 2 , 194 bajtów
Wypróbuj online!
źródło