Powiązane: Powiedz mi, ile problemów matematycznych muszę zrobić!
Wyzwanie
Biorąc pod uwagę ściśle dodatnią, ściśle rosnącą listę liczb całkowitych L i liczbę całkowitą 3 ≤ N ≤ długość L, zamień środkowe liczby całkowite kolejnych liczb całkowitych L o długości ≥ N pojedynczym myślnikiem -
.
Zasady
- Poziome białe znaki nie mają znaczenia.
- Opcjonalnie możesz zachować znaki wprowadzające, separatory i terminatory w domyślnym formacie listy w swoim języku. Zobacz przykłady formatowania poniżej.
Przykłady danych
Wszystkie te przykłady wykorzystują L = 3 5 6 7 8 10 11 12 14 16 17 18 19 20 21 22 24
.
N = 3
→ 3 5 - 8 10 - 12 14 16 - 22 24
N = 4
→ 3 5 - 8 10 11 12 14 16 - 22 24
N = 5
→ 3 5 6 7 8 10 11 12 14 16 - 22 24
N = 8
→ 3 5 6 7 8 10 11 12 14 16 17 18 19 20 21 22 24
Przykłady formatowania
Dla danych wejściowych
L = [3,5,6,7,8,10,11,12,14,16,17,18,19,20,21,22,24]
i N = 3
wszystkich poniższych wierszy znajdują się przykłady prawidłowych odpowiedzi, zarówno jako rzeczywistych list, jak i ciągów:
[3,5,"-",8,10,"-",12,14,16,"-",22,24]
[3,5,-,8,10,-,12,14,16,-,22,24]
[3,5-8,10-12,14,16-22,24]
3,5-8,10-12,14,16-22,24
To samo odnosi się do innych formatów lista, jak {1 2 3}
i (1; 2; 3)
itd. W razie wątpliwości? Zapytać!
-
czy wolno nam użyć innego symbolu?_
aby móc nadal działać na tablicach numerycznych w J.'-'
. Być może uda Ci się również wszystko sprecyzować przed wstawieniem myślników, prawda?[3,5,-8,10,-12,14,16,-22,24]
(wydaje się, że jest to format, który ma największy sens pod względem typów)Odpowiedzi:
Python 2 ,
132115 bajtów-17 bajtów dzięki Leaky Nun
Wypróbuj online!
źródło
while t+i==x[i]:
zadziała? A może coś mi brakuje?i
wyższy niż rozmiarx
Galaretka ,
26 2523 bajtów-2 bajty dzięki Erikowi Outgolferowi (wprowadzając instrukcję if do głównego linku)
Dyadyczny link zwracający listę w
[3,5,"-",8,10,"-",12,14,16,"-",22,24]
formacie.Wypróbuj online! (stopka rozdziela się spacjami, aby wydrukować przykładowy format danych).
W jaki sposób?
źródło
Pyth, 23 bajty
Wypróbuj online
Jak to działa
źródło
Japt , 24 bajty
Wypróbuj online!
Wyjaśnienie
źródło
Mathematica, 128 bajtów
wkład
wydajność
Wypróbuj online!
źródło
APL, 38 bajtów
źródło
PHP 7,
137 136 134 117 110108 bajtówBierze się
L
z pierwszego argumentu, po czym wypisuje elementy. Uruchom-nr
lub wypróbuj online .Wymienić
$L=($a=$argv)
z$a=$argv,$L=
(+ 1) bajtów do PHP <7.awaria
źródło
Siatkówka , 101 bajtów
Wypróbuj online! Pobiera listę rozdzieloną spacjami
L
w pierwszym wierszu i liczbę całkowitąN
w drugim wierszu. Objaśnienie: Pierwszy stopień przekształca dane wejściowe na jednoargumentowy. Drugi etap zmienia odstęp między kolejnymi liczbami całkowitymi naX
. Trzeci etap szuka ciągów kolejnych liczb całkowitych, których długość jest mniejsza niż,N
i zmienia ichX
powrót do spacji. Czwarty etap zmieniaX
s na-
(było to o 3 bajty krótsze niż użycie-
s na pierwszym miejscu). Piąty etap usuwa wszystkie liczby całkowite pozostające w środku przebiegu, a takżeN
, podczas gdy ostatni etap konwertuje z powrotem na dziesiętne.źródło
Rubinowy, 68 bajtów
Zwraca ciąg znaków jak na przykład
3,5-8,10-12,14,16-22,24
.Wypróbuj online!
źródło
J , 40 bajtów
Wypróbuj online!
Używa
_
zamiast-
.Wyjaśnienie
źródło
Galaretka,
393736 bajtówWypróbuj online
Bierze tablicę za pomocą argumentów, a liczbę całkowitą przez STDIN. Łącze TIO używa stopki
ÇG
więc dane wyjściowe są oddzielone spacją.W jaki sposób? (Tablica:
a
, całkowita:n
)Zgaduję, upadłem ... mieszkanie na ten jeden.
źródło
JavaScript (ES6),
126119 bajtówAnonimowa funkcja. Pobiera dane wejściowe w kolejności
Array L, Integer N
i zwraca wynik jako ciąg rozdzielany przecinkami.Pokaż fragment kodu
źródło
e=>c=>
.Dyalog APL v16.0,
82807876756562 bajtówWow, to jest ... złe. Prawdopodobnie istnieje znacznie krótsze rozwiązanie z szablonem.
Wypróbuj online!
Zapraszamy do gry w golfa!
źródło