Biorąc pod uwagę niepusty ciąg, usuwaj pierwszy i ostatni znak, aż dojdziesz do jednego lub dwóch znaków.
Na przykład, jeśli ciąg był abcde
, twój program powinien wydrukować:
abcde
bcd
c
Jeśli jednak tak jest abcdef
, powinien zatrzymać się na dwóch znakach:
abcdef
bcde
cd
Końcowe znaki nowej linii i końcowe spacje na końcu każdej linii są opcjonalne. Możesz mieć tyle, ile chcesz lub nie mieć ich wcale.
Przypadki testowe
ABCDEFGHIJKLMNOPQRSTUVWXYZ -> ABCDEFGHIJKLMNOPQRSTUVWXYZ
BCDEFGHIJKLMNOPQRSTUVWXY
CDEFGHIJKLMNOPQRSTUVWX
DEFGHIJKLMNOPQRSTUVW
EFGHIJKLMNOPQRSTUV
FGHIJKLMNOPQRSTU
GHIJKLMNOPQRST
HIJKLMNOPQRS
IJKLMNOPQR
JKLMNOPQ
KLMNOP
LMNO
MN
ABCDEFGHIJKLMNOPQRSTUVWXYZ! -> ABCDEFGHIJKLMNOPQRSTUVWXYZ!
BCDEFGHIJKLMNOPQRSTUVWXYZ
CDEFGHIJKLMNOPQRSTUVWXY
DEFGHIJKLMNOPQRSTUVWX
EFGHIJKLMNOPQRSTUVW
FGHIJKLMNOPQRSTUV
GHIJKLMNOPQRSTU
HIJKLMNOPQRST
IJKLMNOPQRS
JKLMNOPQR
KLMNOPQ
LMNOP
MNO
N
A -> A
AB -> AB
Pamiętaj, że to kod-golf , więc wygrywa kod o najmniejszej liczbie bajtów.
Odpowiedzi:
V , 10 bajtów
Wypróbuj online!
Wyjaśnienie:
źródło
Python, 45 bajtów
Rekurencyjnie wyprowadza ciąg, plus znak nowej linii oraz spacje wiodące dla następnego wiersza, a także wynik rekurencyjny dla skróconego ciągu z dodatkową spacją w prefiksie.
Jeśli dozwolony byłby nowy wiersz, moglibyśmy zapisać bajt:
Porównaj z programem (49 bajtów w Python 2):
źródło
ES6 (JavaScript),
47,48, 43 bajtyEDYCJA: Zastąpiony operator trójskładnikowy przez &&, poprzedzony ciąg dopełniający znakiem nowej linii. Dzięki @Neil za doskonałą poradę!
EDYCJA: zawarła nazwę funkcji dla rekurencyjnego wywołania, usunęła jeden bajt używając dosłownego nowego wiersza
Grał w golfa
Test
źródło
p
nowej linii i spacji; może to też może ci pomóc.s&&
zamiasts?...:''
.Python 2, 50 bajtów
Prosta funkcja rekurencyjna, która skraca ciąg znaków, aż zniknie.
Wywołaj jako f („ciąg”)
Wynik
źródło
Perl, 31 bajtów
30 bajtów kodu +
-p
flaga.Aby uruchomić:
Objaśnienia :
\S
i.$
odpowiadają pierwszej i ostatniej postaci,(.+)
środkowej i( *)
końcowym spacjom, które są dodawane za każdym razem, gdy usuwamy jedną postać od początku. Zatem wyrażenie regularne usuwa jedną postać od początku, jedną od końca i za każdym razem dodaje jedną spację wiodącą.źródło
Brainfuck , 67 bajtów
To powinno działać na wszystkie smaki pieprzenia mózgu.
Wypróbuj online!
Nieskluczony kod:
Wciąż powinno być tu trochę bajtów; Dopiero niedawno zacząłem używać pieprzenia mózgu, więc mój ruch wskaźnika jest prawdopodobnie bardzo nieefektywny.
źródło
MATL , 9 bajtów
Tworzy to końcowe spacje i znaki nowej linii.
Wypróbuj online!
Wyjaśnienie
źródło
Partia, 92 bajty
Pobiera dane wejściowe na STDIN.
źródło
C, 73 bajty
Nie golfowany:
Stosowanie:
źródło
05AB1E , 8 bajtów
Kod:
Wyjaśnienie:
Wykorzystuje kodowanie CP-1252 . Wypróbuj online!
źródło
Pyke, 10 bajtów
Wypróbuj tutaj!
źródło
Haskell,
4743 bajtówWypróbuj na Ideone . Dane wyjściowe to lista ciągów dozwolonych w komentarzach do wyzwania. Aby wydrukować, uruchom
(putStr.unlines.f)
zamiast zamiastf
.Edycja: Zapisano 4 bajty po zauważeniu, że końcowe białe znaki są dozwolone.
źródło
Perl 6 , 42 bajtów
Rozszerzony:
źródło
GNU sed 24 bajty
Obejmuje +2 za
-rn
Drukuje, zastępuje pierwszy znak spacji spacją i usuwa ostatni znak, dopóki nic się nie zmieni.
źródło
Siatkówka , 17 bajtów
Wypróbuj online!
źródło
C ++ 14, 117 bajtów
Zakłada, że wejście
s
to astd::string
i zwraca animowany tekst.Nie golfowany:
Stosowanie:
źródło
Vim - 14 naciśnięć klawiszy
Wyjaśnienie:
Vim automatycznie zabija makro, gdy brakuje nam postaci
źródło
Kłapnięcie! - 16 bloków
Wyjście jest samocentrujące. „Czekanie” dotyczy ludzi.
źródło
PHP, 91 bajtów
Sposób użycia: zapisz w pliku i zadzwoń z przeglądarki:
źródło
Mathematica, 71 bajtów
źródło