Musisz napisać program lub funkcję, która utworzy ciąg „schodkowy”. Oto, w jaki sposób „schodów” ciąg:
Dla każdego znaku w ciągu:
Jeśli znak jest samogłoską składającą się z wielkich lub małych liter, nie zawierającą „y”, wypisz go, a następnie przenieś resztę ciągu w górę kolumny.
Jeśli znakiem jest spacja lub tabulator, wypisz go, a następnie przenieś resztę łańcucha w dół do kolumny.
Jeśli znak nie jest żaden, wypisz go normalnie.
IO może mieć dowolny rozsądny format. Dane wejściowe nie będą zawierać żadnych nowych linii. Jeśli chcesz, możesz usunąć wszelkie spacje końcowe.
Jeśli zdecydujesz się zwrócić łańcuch zamiast go wydrukować, dołącz również krótki program, który wydrukuje łańcuch, aby można go było zwizualizować. Nie jest to obowiązkowe ani nie będzie się zbliżać do liczby bajtów. Jest to po prostu wygoda dla użytkowników, którzy nie rozumieją golfa lub esolangów (takich jak ja), aby móc zweryfikować dane wyjściowe lub majstrować przy pomocy kodu.
Próbka IO:
Dane wyjściowe dla „bcdef ghijkl”:
f jkl
bcde ghi
Wyjście dla „Programowanie łamigłówek i golfa”:
lf
-Go
s nd de
ng zzle A Co
mmi Pu
gra
Pro
Dane wyjściowe dla „Abcdefghijklmnopqrstuvwxyz”:
vwxyz
pqrstu
jklmno
fghi
bcde
A
Jak zwykle jest to golf golfowy, więc wygrywa najkrótsza odpowiedź w bajtach.
Odpowiedzi:
MATL ,
3837 bajtówWypróbuj online!
Wyjaśnienie
Dla każdego znaku kod oblicza jego położenie pionowe, mierzone od góry (0 jest najwyższe). Następnie buduje transponowany ciąg wyjściowy: każdy znak jest na linii z tyloma spacjami wiodącymi, ile wskazuje jego pozycja pionowa. Następnie wszystkie linie są przekształcane w tablicę znaków 2D, która jest ostatecznie transponowana i wyświetlana.
źródło
Pyth, 63 bajty
Spacje na środku są w rzeczywistości pojedynczymi znakami tabulacji, ale StackExchange renderuje je jako cztery spacje.
Wypróbuj online!
źródło
Python 2,
141137 bajtówźródło
JavaScript (Firefox 30-57), 151 bajtów
Gdzie
\n
reprezentuje dosłowny znak nowej linii.źródło
/n
``C, 180 bajtów
Nie golfowany:
źródło
Perl, 110 bajtów (skrypt 108 bajtów + flagi 2 bajty)
Uruchom z
perl -nl script.pl
, wejście jest ustawione na standardowe, wyjście jest ustawione na standardowe.Odbarwione
Zmieniłem nazwę zmiennych na bardziej rozsądną, uczyniłem kod
use strict
i byłuse warnings
zgodny, i wyraźnie powiedziałem, że wiele magicznych perlów robi automatycznie.Jest to po prostu uruchamiane jako
perl script.pl
, ponieważ replikuje efekty-nl
flag w skrypcie.źródło
JavaScript (ES6), 133
Mniej golfa
Test
źródło
Haskell (w obrębie terminala ANSI), 75 bajtów
Przykład użycia:
putStr $ ("\27[2J"++).(h=<<) $ "bcdef ghijkl"
Używa kodów specjalnych ANSI do poruszania kursorem w górę i w dół.
źródło
C
173160156155 bajtówEdycja: Pożyczona idea użycia strchr z @mIllIbyte do golenia 13 bajtów
Edycja2: Usprawniono porównania min / maks, -4 bajty
Edycja3: c może mieć dowolną wartość zaczynającą się od -> do main (c) zamiast -1 bajtu
Edycja4: Dodano ungolf / wyjaśnienie
Nie golfił i wyjaśnił:
źródło