Czytając historię i robiąc notatki, nie mogę się zmęczyć pisaniem długich dat - 1784 to sześć całych ołówków! jǝǝz!
Jak widać, ja - lubię większość plakatów z wyzwaniami na tej stronie - jestem leniwy, jeśli chodzi o pisanie. Dlatego proszę o pomoc w skróceniu niektórych dat. Oczywiście twoje rozwiązanie musi być tak krótkie, jak to możliwe, ponieważ moja ręka jest już zmęczona pisaniem wpisywania przypadków testowych.
Jak skrócić randkę?
Zabawne, że powinieneś zapytać. To dość proste:
- Weź dwie liczby całkowite jako dane wejściowe w dowolnej kolejności (
(smallest, biggest)
lub(biggest, smallest)
). - Weź większą z dwóch liczb i weź tylko część, której nie ma w mniejszej liczbie.
Na przykład, podając2010, 2017
, skróć2017
do,-7
ponieważ201_
jest w obu w tych samych cyfrach. - Wydrukuj lub zwróć mniejszą liczbę, następnie myślnik, a następnie skróconą większą liczbę.
Na przykład:
Bonus brownies for you if you figure out these dates' significance :)
1505, 1516 -> 1505-16
1989, 1991 -> 1989-91
1914, 1918 -> 1914-8
1833, 1871 -> 1833-71
1000, 2000 -> 1000-2000
1776, 2017 -> 1776-2017
2016, 2016 -> 2016-
These dates lack significance :(
1234567890, 1234567891 -> 1234567890-1
600, 1600 -> 600-1600
1235, 1424 -> 1235-424
600, 6000 -> 600-6000
1914-18
czy1914-8
?600, 6000 -> 600-6000
?1914-8
jest I wojna światowa. Teraz daj mi ciasteczka!Odpowiedzi:
05AB1E , 16 bajtów
Wypróbuj online!
Wykorzystuje algorytm Jonathana Allana.
źródło
Galaretka ,
1716 bajtówPełny program z listą lat
from, to
i wydrukowaniem wyniku.Wypróbuj online! lub zobacz pakiet testowy .
W jaki sposób?
źródło
[600, 6000]
. I wydaje się, że zostało to niedocenione.JavaScript ES6,
5957 znakówTest:
źródło
(x+'-'+y)
?x=>y=>
), aby zapisać bajt.Dyalog APL, 29 bajtów
Wypróbuj online!
W jaki sposób?
⍺,'-'
- pierwszy rok +, -
=x←⍕⍵
- porównaj sformatowany drugi rok((-⍴x)↑⍕⍺)
- do pierwszego roku wypełnione odstępami od lewej⌈\~
- zaneguj wynik i zaznacz wszystkie 1 po pierwszymx/⍨
- weź drugi rok na wszystkich zaznaczonych pozycjachźródło
Retina , 34 bajty
Wypróbuj online! Link zawiera przypadki testowe. Grupa równoważąca i granica słowa zapewniają, że obie liczby są tej samej długości przed dopasowaniem prefiksu. Jeśli nie, granica słów pasuje do początku drugiego roku, więc wszystko, co się dzieje, to przecinek, który zmienia się w myślnik.
źródło
Python 2 , 102 bajty
Wypróbuj online!
Wydaje mi się, że musi istnieć lepszy sposób, aby to zrobić, ponieważ wydaje się to bardzo gadatliwe. Ekstremalne nadużywanie `` oceny zmiennych, aby to zadziałało, ponieważ nie możemy brać ciągów jako danych wejściowych.
źródło
Python 2, 127 bajtów
Nadal jestem w tym nowy, więc nie wiem, czy można wstawić inną odpowiedź w tym samym języku. Ponieważ nie mogę jeszcze komentować postów innych ludzi, ryzykuję tutaj.
Wypróbuj online!
Robię to, porównując każdą cyfrę z obu czasów i jeśli większa jest inna, drukuję mniejszą liczbę plus resztę większej.
Gdyby ktoś mógł mi pomóc zagrać w trzecią linię, zaoszczędziłbym ponad 30 bajtów. Zaimplementowałem go tylko do obsługi przypadku 600,6000, gdzie cyfry są równe, ale nie tej samej długości.
źródło
Haskell , 143 bajty
Wypróbuj online!
smallest biggest
input (liczby całkowite).if length x<length y then y
oznacza, że jeślix
ma mniej cyfr niży
wtedy wspólna część jest nieważna. W przeciwnym razie przechowujemy cyfryy
od pierwszej innej cyfry.źródło
Python 2 ,
8988 bajtówWypróbuj online!
źródło
Common Lisp, 120 bajtów
Wypróbuj online!
Najmniejszy, największy.
Nie golfowany:
źródło
C ++,
285271 bajtów-14 bajtów dzięki Zacharýowi
Kod do testowania:
źródło
using namespace std;
usuwającT
makro.