Wyzwanie:
Wkład:
Podajesz dwa dane wejściowe:
- Ciąg znaków zawierający tylko drukowalny kod ASCII (bez spacji, tabulatorów i nowych wierszy)
- Drukowalny znak ASCII
Wydajność:
Pierwszy wiersz będzie zawierał ciąg wejściowy. Każde i
pierwsze -modulo-3 pierwsze pojawienie się tej postaci będzie poruszać się w kierunku południowo-wschodnim; każde i
-modulo-3 sekundy wystąpi w kierunku południowym; i każde i
trzecie wystąpienie -modulo-3 będzie poruszać się w kierunku południowo-zachodnim. Będziesz kontynuował, aż znaki znów znajdą się w początkowej pozycji początkowej (co oznacza, że w razie potrzeby będzie się przewijał z jednej strony na drugą), a następnie wydrukujesz ostatni wiersz z ciągiem znaków wejściowych, aby skończ to. (Zauważ, że wszystkie przypadki testowe kończą się przy początkowym wprowadzeniu co najwyżej length(input)
wierszy, w tym wiersz zawierający dane końcowe. Może być jednak wcześniej, jak widać w pierwszym przypadku testowym poniżej, o długości 14, ale kończącym się po 9.)
To wszystko może być dość niejasne, więc oto przykład:
Przypadek testowy 1:
Ciąg znaków: "This_is_a_test"
Znak znaków:'s'
Wydajność:
This_is_a_test
s s s
ss s
s s
sss
sss
s s
ss s
s s s
This_is_a_test
Oto ten sam przypadek testowy z kolorowymi ścieżkami trzech s
:
gdzie pierwszy 's'
podąża zieloną ścieżką w kierunku południowo-wschodnim; drugi 's'
podąża żółtą ścieżką w kierunku południowym; a trzeci 's'
podąża jasnoniebieską ścieżką w kierunku południowo-zachodnim. (Gdyby był czwarty 's'
, znów poszedłby w kierunku południowo-wschodnim, co można zobaczyć w niektórych innych przypadkach testowych poniżej.)
Zasady konkursu:
- Dane wejściowe będą zawierać tylko ASCII do wydruku (z wyłączeniem spacji, tabulatorów i nowych wierszy)
- Formaty we / wy są elastyczne. Może być ciągiem rozdzielanym znakiem nowej linii, macierzą znaków itp. Twoje połączenie.
- Możliwe jest, że dany znak nie jest obecny w ciągu, w którym to przypadku możesz albo wypisać ciąg wejściowy raz, albo dwa razy (tzn.
"test", 'a'
Możesz mieć jeden z tych, jak to możliwe:"test\ntest"
/"test"
). - Wiodące miejsca są obowiązkowe; końcowe spacje są opcjonalne. Dozwolona jest jedna lub wiele nowych / wiodących nowych linii.
Główne zasady:
- To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
Nie pozwól, aby języki gry w golfa zniechęcały Cię do publikowania odpowiedzi w językach niekodujących golfa. Spróbuj znaleźć możliwie najkrótszą odpowiedź na „dowolny” język programowania. - Do odpowiedzi mają zastosowanie standardowe reguły , więc możesz używać STDIN / STDOUT, funkcji / metody z odpowiednimi parametrami i zwracanymi typami, pełnych programów. Twoja decyzja.
- Domyślne luki są zabronione.
- Jeśli to możliwe, dodaj link z testem swojego kodu.
- W razie potrzeby dodaj również wyjaśnienie.
Przypadki testowe / więcej przykładów:
Przypadek testowy 2:
Ciąg znaków: "abcabcabcabcabc"
Znak znaków:'b'
Wydajność:
abcabcabcabcabc
b b b b b
bbb bb
b b
bbb bb
b b b b b
b b b b
b b b b b
bb b bb
b b b
bb bbb
b b bbb
b b b b
b bb bb
b b bb b
abcabcabcabcabc
Oto ten sam przypadek testowy z kolorowymi ścieżkami pięciu a
:
Przypadek testowy 3:
Ciąg znaków: "only_two_paths?"
Znak znaków:'o'
Wydajność:
only_two_paths?
o o
o o
o o
o o
o o
oo
o
oo
o o
o o
o o
o o
o o
o o
only_two_paths?
Oto ten sam przypadek testowy z kolorowymi ścieżkami dwóch o
:
Przypadek testowy 4:
String-input: "lollollollollol"
Input character:'l'
Wydajność:
lollollollollol
lll ll ll
ll ll ll
l ll ll ll ll
lll l ll l ll
llllll ll ll
l l ll ll
ll lll ll
l l l lll ll l
ll l ll l l
l l l l llll l
ll lll lll
l l l ll
ll lll lllll
l l l ll l ll
lollollollollol
Oto ten sam przypadek testowy z kolorowymi ścieżkami dziesięciu l
:
Przypadek testowy 5:
String-input: "AbCdEeDcBaAbCdEeDcBa_CCCCC"
Input character:'C'
Wydajność:
AbCdEeDcBaAbCdEeDcBa_CCCCC
C C C C C
C C C C CCC
C C C C C C C
C C C C C C C
C C C C C C C
C C C C C C C
C C C C C C C
C C C CC C C
C C CC C C
C C CC C C
C C CC C
CC CC C C
CC CC C C
C C CC C C
C C CC C C C
C C C C C C
C C CC C C C
C C C C C C C
C C C C C C C
C C C C C CC
C C C C C C
C C C C CCC
C C C CCCC
C C C C
C C CCCCC
AbCdEeDcBaAbCdEeDcBa_CCCCC
Oto ten sam przypadek testowy z kolorowymi ścieżkami siedmiu C
:
Przypadek testowy 6:
String-input: "XyX"
Input character:'X'
Wydajność:
XyX
XX
X
XyX
Oto ten sam przypadek testowy z kolorowymi ścieżkami dwóch X
:
Przypadek testowy 7:
String-input: "aaaa"
Input character:'a'
Wydajność:
aaaa
aa
aaa
aaa
aaaa
Oto ten sam przypadek testowy z kolorowymi ścieżkami czterech a
:
length(input)
wszystko się zgadza, ale może być wcześniej, jak pokazuje pierwszy przypadek testowy. Ale wygląda na to, że rzeczywiście masz rację co do wielokrotności 3 części (chociaż nie jestem w 100% pewien).