Wyzwanie
Biorąc pod uwagę dwa ciągi w dowolnym domyślnym formacie we / wy, wykonaj następujące czynności:
UWAGA: Wyzwanie będzie odnosić się do pierwszego ciągu jako „danych”, a drugi do „programu”.
- Zmień program na ciąg nieskończony, który jest po prostu programem powtarzanym w nieskończoność (np.
10
->1010101010...
). Wyzwanie będzie się nazywać tym „nieskończonym programem” Gdy dane nie są puste, wykonaj następujące czynności, zapętlając nieskończony program:
za. Jeśli bieżącym poleceniem jest „0”, usuń lewy bit z danych. Jeśli dane są puste, „0” nic nie robi.
b. Jeśli bieżącym poleceniem jest „1”, dołącz następny znak w programie do danych, jeśli najbardziej lewy bit w danych to jeden.
do. Jeśli dane nie są teraz puste, wyślij dane.
Przypadki testowe
Dane są po lewej stronie wejścia, a program po prawej stronie.
100, 0 --> 00, 0
1111, 1 --> 11111, 111111, 1111111, ...
10, 011 --> 0, 0, 0
1110, 011 --> 110, 1101, 11010, 1010...
Notatki
- Dane i program będą się składały tylko z zer i jedynek
- W przypadku danych / programów, które się nie zatrzymują, Twój program nie musi się zatrzymywać.
- Dane i program nie będą puste na wejściu.
- Możesz mieć wiele końcowych i wiodących nowych linii
- Standardowe luki są zabronione
- Możesz użyć dowolnego wygodnego formatu we / wy
Jak zawsze z kodem-golf , najkrótszych wygrywa kodu !
100
przechodzi do 10
cmd 0
, którego definicja to „usuń najbardziej lewy bit z danych”. nie skrajny lewy bit 100
być 1
?