W tym wyzwaniu umieścisz litery z alfabetu na płaszczyźnie kartezjańskiej i wyślesz wynik jako tekst.
Twój wkład będzie składał się z listy z 3 parametrami:
- Współrzędna X.
- Współrzędna Y.
- Strunowy
W jaki sposób?
Wiemy, że płaszczyzna kartezjańska zawiera 2 osie i 4 ćwiartki, w których znakami współrzędnych są , , i . Na przykład
Rozważ następującą macierz 3 na 3 jako płaszczyznę kartezjańską
Jeśli otrzymamy na wejściu, coś w rodzaju [[-1,1,L],[0,1,F]]
naszej matrycy będzie wyglądało podobnie
I końcowy wynik LF
Oprócz tego należy uzyskać pewne punkty, aby uzyskać prawidłowe wyniki:
- Po powtórzeniu współrzędnej X, Y konieczne będzie połączenie łańcuchów. Przykład: załóżmy, że w (-1,1) łańcuch
F
jest umieszczony i musisz umieścić łańcucha
w tym samym punkcie. Łączysz oba łańcuchy, dzięki czemu powstajeFa
i jest to wartość, która wejdzie w (-1,1). - Twój wynik musi być spójny z matrycą. Przykład wyobraź sobie to jako wynik końcowy:
Musisz wyprowadzać
Ma rie
i s
cute
Dlaczego?
Możesz to zobaczyć jako tabelę, w której kolumny są wartościami osi x, a rzędy osi y.
Column 1 | Column 2 | Column 3
----------------------------------------
Row 1 | "Ma" | "r" | "ie"
Row 2 | "i" | "s" |
Row 3 | "cute" | |
Wszystkie wartości kolumn muszą mieć tę samą długość
Column 1 | Column 2 | Column 3
----------------------------------------
Row 1 | "Ma " | "r" | "ie"
Row 2 | "i " | "s" |
Row 3 | "cute" | |
Ostatecznie wyprowadzamy wynik
Ma rie
i s
cute
Przypadki testowe
Input
------------
[[3, 3, "c"]
[4, 1, "un"]
[5, 3, "e"]
[4, 3, "od"]
[4, 2, "lf"]
[1, 2, "go"]
[2, 1, "i"]
[2, 1, "s f"]]
Output
--------------
code
go lf
is f un
Input
--------------
[[0, 0, 's'],
[-1,1, 'M'],
[0, 1, 'r'],
[-1,1, 'a'],
[1, 1, 'i'],
[-1, 0, 'i'],
[1, 1, 'e'],
[-1,- 1, 'c'],
[-1,- 1, 'u'],
[-1, -1, 'te']]
Output.
----------------
Ma rie
i s
cute
Notatki
- To ma być golf golfowy
- Możesz zawinąć współrzędne w jedną listę, np
[[3, 3], "c"]
- Możesz pobrać dane wejściowe w dowolnym rozsądnym formacie
- Możesz założyć, że na wejściu nie będzie żadnej liczby ani pustych spacji. np. może być coś takiego,
a a
ale nigdy1
lub" "
lub1a
lub1 1
źródło
a a
ale nigdy1
lub `` lub1a
lub1 1
(int a,int b,string c)
?Odpowiedzi:
JavaScript (ES8),
186 180179 bajtówZaoszczędzono 1 bajt dzięki @Shaggy
Wypróbuj online!
Negatywne wskaźniki w JS (lub ich brak)
Biorąc pod uwagę tablicę
A[]
, JS może robić coś takiegoA[-1] = 5
. Nie spowoduje to jednak zapisania wartości w samej tablicy. Zamiast tego domyślnie wymusi ten ujemny indeks na string ("-1"
) i ustawi odpowiednią właściwość w otaczającym obiekcie tablicy.Zła wiadomość jest taka, że właściwości nie można iterować metodami takimi jak
map()
:Wypróbuj online!
Powyższy kod zostanie wyświetlony tylko
3 is stored at index 1
.Możliwym obejściem byłoby:
Wypróbuj online!
Ale:
Co tu robimy
Oto, co robimy zamiast tego:
źródło
o
w terminiew
:w=[o=[]]
.Python 2 ,
188185181 bajtówWypróbuj online!
źródło
APL (Dyalog Unicode) , 39 bajtów SBCS
Anonimowy przyrostek lambda przyjmujący * listy współrzędnych i ciągów znaków jako lewy i prawy argument.
Wypróbuj online!
{
…}
„Dfn”; argumentami left (współrzędne) i right (string) są⍺
i⍵
:⊂''
dołączony pusty ciąg, więc użyj jako wypełnienia dla tablicy(
...)⍴
cyklicznie r eshape w szeregu następujących wymiarach:⌊/⍺
najniższa wartość wzdłuż każdej osi współrzędnych⍺-
odejmij to od wszystkich współrzędnych1+
dodaj to do jednego (ponieważ chcemy zakres obejmujący)c←
Przechowywać wc
(na c oordinates)⌈/
najwyższa wartość wzdłuż każdej z nich⊃
rozpakuj, aby użyć jako wymiarówm←
zapisz wm
(dla m atrix)⍵⊣
odrzuć to na rzecz łańcuchówm[c],←
dołącz je dom
współrzędnychc
m⊣
odrzucić tych, którzy opowiadają się za zmienionymim
⌽
lustro↓
podzielony na listę list ciągów↑¨
zmieszaj każdą listę ciągów znaków w macierz znaków, wypełniając je spacjami,/
zmniejszyć przez konkatenację poziomą⊃
rozpakuj (ponieważ redukcja zmniejsza rangę z 1 do 0)* Jeśli wymagany jest pojedynczy argument przeplatanych współrzędnych i łańcuchów, będzie on dłuższy o 5 bajtów.
źródło
05AB1E ,
4544 bajtówPobiera współrzędne wejściowe jako wewnętrzną listę.
Wypróbuj online lub sprawdź wszystkie przypadki testowe .
Wyjaśnienie:
źródło
Węgiel , 60 bajtów
Wypróbuj online! Link jest do pełnej wersji kodu. Wyjaśnienie:
Wyodrębnij współrzędne z wejścia.
Pętla nad współrzędnymi x.
Pętlę nad współrzędnymi y, wyodrębniając i łącząc wszystkie ciągi o podanych współrzędnych.
Drukuj łańcuchy w odwrotnej kolejności, ponieważ współrzędne y są odwrócone w porównaniu do układu współrzędnych węgla drzewnego.
Przejdź na początek następnej kolumny.
źródło
Perl 5
-p00
-MList::Util=max
, 148 bajtówTIO
W jaki sposób
s/(\S+) (\S+) (.*) /
...;''/ge;
, ewaluacja/g
pętli flag podstawienia/e
, zamiana zwraca do pustej linii wejściowej / domyślnej zmiennej rozliczeniowej$a{$1}=max$a{$1},length($h{$2}{$1}.=$3)
, automatycznie uwiarygodnia mapę% h mapy, której klucze pierwszego poziomuy
drugiego poziomux
i konkatenują ciąg znaków$3
z wartością, uzyskują długość i automatycznie uwiarygodniają drugą mapę% a, której kluczex
i wartość maksymalną długość nad kolumną (x
)for$y(sort{$b-$a}keys%h){
...;say""}
, dla indeksów wierszy$y
w kluczach%h
posortowanych numerycznie do tyłu,say""
na końcu, aby wydrukować nowy wierszmap{
...}sort{$a-$b}keys%a
, dla indeksu kolumny$_
w kluczach% a posortowane numerycznieprintf"%-$a{$_}s",$h{$y}{$_}
, wydrukuj ciąg wyrównany do lewej z szerokością kolumnyźródło
Czysty ,
212206 bajtówWypróbuj online!
źródło