Ваша задача - написать программу (или функцию), которая будет принимать строку в качестве входных данных и добавлять текст в начало каждой строки, которая удовлетворяет следующим правилам:
- Добавляемый текст должен содержать номер строки. Вы можете использовать индексацию на основе 0 или 1.
- Текст должен быть комментарием на вашем языке. Комментарий определяется как синтаксически допустимый фрагмент кода, который не вносит изменений в состояние программы. Удаление комментария не должно вносить изменений в программу.
- Комментарий может содержать только новые строки в конце.
- Вам не нужно ставить номера строк для строк, которые содержат только пробелы и комментарии.
Характеристики
- Вы можете предположить, что ввод будет действительной программой на вашем языке.
- В языках, чувствительных к отступам, таких как Python, вы можете разместить комментарий к номеру строки после всех отступов. Вы можете выбрать символы табуляции или табуляции, но вы должны указать это в своем сообщении.
- Вы можете предположить, что каждое утверждение в коде будет занимать не более 1 строки; т.е. нет многострочных строк или продолжения с обратным слешем.
Тестовые случаи
Python:
#0
a = int(input())
#1
while a:
#2
print(a)
C: (Честно говоря, я удивлен, что это компилируется)
/*0 */#include <stdio.h>
/*1 */int main()
/*2 */{
/*3 */ char c;
/*4 */ c = getchar();
/*5 */ do
/*6 */ {
/*7 */ putchar(c);
/*8 */ }
/*9 */ while (c);
/*10*/}
Это код-гольф , поэтому выигрывает самый короткий ответ (в байтах).
AssertionError
если в трассировке стека не содержалась фраза foo.py
, которая, как ожидалось, должна исходить из имени файла, но также могла бы отображаться как строковый комментарий в контексте.