Votre tâche consiste à écrire un programme (ou une fonction) qui prendra une chaîne en entrée et ajoutera du texte au début de chaque ligne qui satisfait aux règles suivantes:
- Le texte ajouté doit contenir le numéro de ligne. Vous pouvez utiliser une indexation basée sur 0 ou 1.
- Le texte doit être un commentaire dans votre langue. Un commentaire est défini comme un morceau de code syntaxiquement valide qui n'apporte aucune modification à l'état du programme. La suppression du commentaire ne devrait pas modifier le programme.
- Le commentaire ne peut contenir que des sauts de ligne à la fin de celui-ci.
- Il n'est pas nécessaire de mettre des numéros de ligne pour les lignes qui contiennent uniquement des espaces et des commentaires.
Caractéristiques
- Vous pouvez supposer que l'entrée sera un programme valide dans votre langue.
- Dans les langages sensibles à l'indentation comme Python, vous pouvez placer le commentaire du numéro de ligne après toute indentation. Vous pouvez choisir des tabulations ou des espaces comme caractère d'indentation, mais vous devez le spécifier sur votre message.
- Vous pouvez supposer que chaque instruction du code occupera au maximum l'intégralité d'une ligne; c'est-à-dire pas de chaînes multi-lignes ou de poursuite de barre oblique inverse.
Cas de test
Python:
#0
a = int(input())
#1
while a:
#2
print(a)
C: (Honnêtement, je suis surpris que cela compile)
/*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*/}
Il s'agit de code-golf , donc la réponse la plus courte (en octets) l'emporte.
AssertionError
moins que la trace de la pile ne contienne la phrase foo.py
, qui devait provenir d'un nom de fichier mais pourrait également apparaître comme un commentaire de ligne dans le contexte.