Вызов
Имея две строки в любом формате ввода / вывода по умолчанию, сделайте следующее:
ПРИМЕЧАНИЕ. Задача будет называть первую строку как «данные», а вторую - как «программу».
- Измените программу на бесконечную строку, которая является просто программой, повторяемой бесконечно (например,
10->1010101010...). Задача будет называть это «бесконечной программой» Пока данные не пустые, выполните следующие действия во время цикла бесконечной программы:
а. Если текущая команда "0", удалите самый левый бит в данных. Если данные пусты, «0» ничего не делает.
б. Если текущая команда «1», добавьте следующий символ в программе к данным, если самый левый бит в данных равен единице.
с. Если данные сейчас не пусты, выведите данные.
Тестовые случаи
Данные - это левая сторона ввода, а программа - это правая сторона.
100, 0 --> 00, 0
1111, 1 --> 11111, 111111, 1111111, ...
10, 011 --> 0, 0, 0
1110, 011 --> 110, 1101, 11010, 1010...
Заметки
- Данные и программа будут состоять только из 0 и 1
- Для данных / программ, которые не останавливаются, ваша программа не должна останавливаться.
- Данные и программа не будут пустыми на входе.
- У вас может быть несколько трейлингов и лидирующих новых строк
- Стандартные лазейки запрещены
- Вы можете использовать любой удобный формат ввода / вывода
Как всегда с code-golf , выигрывает самый короткий код !
100происходит 10переход к cmd 0, определение которого «удалить самый левый бит в данных». не крайний левый бит 100быть 1?