Znajdź X
Zainspirowały mnie pytania matematyczne, w których zadaje się pytanie „Znajdź X” dla danego kształtu. Początkowo miałem właśnie za zadanie wydrukować lokalizację xiy znaku „x” w ciągu znaków. Ale myślałem, że to byłoby zbyt proste. Rozważyłem więc kontekst, w którym normalnie się znajdowali, i zdecydowałem, że znalezienie długości linii obok x wydaje się odpowiednie.
Biorąc pod uwagę ciąg znaków zawierający diagram ascii „linii”, a także pojedynczy znak „x” i potencjalnie śmieci, wydrukuj długość jedynego wiersza, który ma bezpośrednio „x”.
Przykłady
Wejście:
|
|
|x
|
|
Ouput:
5
Wejście:
|\
| \x
| \
|___\
Wynik:
4
Wejście:
Diagram of a Wobbly Line:
IRRELEVANTTEXT____
____ ____/
\___/ X ;)
x
Wynik:
3
Wejście:
______________
/ ____________ \
|/ __________ \|
||/ ________ \||
|||/ ______ \|||
||||/ \||||
|||||/ x |||||
|||||\_____/||||
||||\_______/|||
|||\_________/||
||\___________/|
\_____________/
Wynik:
5
Notatki
- Prawidłowe znaki wiersza to
\/_|
\
łączy lewy górny i prawy dolny róg./
łączy w sobie prawy górny i lewy dolny róg._
łączy lewą i prawą część siebie|
łączy górę i dół samego siebie- Linia zawsze będzie prosta i składać się będzie tylko z jednego znaku linii powtarzanego n razy.
- X będzie zawsze małymi literami i zawsze będzie jedynym na schemacie.
- Adjecent oznacza, że x jest dokładnie jedną postacią powyżej, poniżej lub poza nią.
- X zawsze będzie znajdować się dokładnie obok dokładnie jednej linii.
- Zakładki nigdy nie pojawią się na wejściu.
- Dane wejściowe i wyjściowe mogą mieć dowolny akceptowalny format.
- To jest Code Golf, więc wygrywa najkrótszy kod!
- BAW SIĘ DOBRZE. ZRÓB TO. BAW SIĘ DOBRZE.
@
testową, która ma kształt podobny do odpowiedzi z testu warunków skrajnych.Odpowiedzi:
JavaScript (ES6),
165, 155 bajtówEDYCJA: Wstawione x i w , aby zaoszczędzić trochę więcej bajtów.
Gra w golfa (przy założeniu, że dane wejściowe są wypełnione spacjami, aby utworzyć prostokąt)
Rozszerzony
Test
Przykładowe dane wyjściowe (jeśli uruchomisz to w konsoli Narzędzi programisty Google Chrome)
źródło
Python 3,
428408385378 bajtówPracuje, ale ma mnóstwo możliwości do gry w golfa. Jestem trochę zardzewiały.
Zakłada, że dane wejściowe są wypełnione spacjami, aby utworzyć prostokąt.
EDYCJA: Dzięki @Artyer za 23 bajty oszczędności!
EDYCJA 2: Wow, całkowicie brakowało mi 6 bajtów oszczędności. Zaoszczędził jeszcze 1, zamieniając strony testu równości.
Wersja rozszerzona z wyjaśnieniem:
źródło
<!-- language-all: lang-py -->
do podświetlania składni.*i,=map(list,inputtt.split('\n'))
(*i,
tworzyi
listę zamiast mapy) (-6 dodatkowych bajtów)Lua, 480 bajtów
Lua, będąc językiem pełnym, nie pokonuje odpowiedzi w języku Python. Ale nie musi.
Podobne do mojej referencyjnej implementacji, ale faktycznie gra w golfa i robi pewne rzeczy bardziej sprytnie niż wcześniej. Prawdopodobnie można by go trochę lepiej zagrać w golfa.
Z komentarzami.
źródło
JavaScript (ES6), 175
Zakładając, że dane wejściowe są wypełnione spacjami, aby utworzyć prostokąt.
Mniej golfa
Testuj kropki zamiast spacji dla zachowania przejrzystości
źródło