Écrivez un programme qui prend une chaîne où chaque ligne se compose du caractère 0
indenté par un certain nombre d'espaces. La ligne supérieure n'est pas en retrait et toutes les autres lignes seront en retrait d'au plus un espace de plus que la ligne juste avant.
Aucune ligne n'aura d'espaces de fin, mais vous pouvez éventuellement supposer qu'il existe une seule nouvelle ligne de fin.
Par exemple, l'entrée peut ressembler à ceci:
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Votre tâche consiste à le numéroter comme un plan hiérarchique , en utilisant des entiers positifs croissants comme en-têtes de ligne. Ce serait la sortie de l'exemple:
1
1
1
2
2
2
1
2
3
1
3
1
1
2
Notez que chaque niveau d'indentation hiérarchique possède son propre ensemble de nombres croissants, même s'ils ne vont que jusqu'à un.
Dans la sortie, il ne doit pas y avoir d'espaces de fin, mais il peut éventuellement y avoir une seule nouvelle ligne de fin.
Écrivez un programme complet qui prend la chaîne d'entrée via stdin ou la ligne de commande, ou écrivez une fonction qui prend la chaîne en argument. Imprimez le résultat ou renvoyez-le sous forme de chaîne.
Le code le plus court en octets gagne.
Exemples
Si la chaîne vide est entrée, la chaîne vide doit être sortie.
L'exemple le plus trivial suivant est l'entrée
0
qui devrait devenir
1
Grand exemple - Entrée:
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Production:
1
1
1
2
1
3
1
2
1
2
1
1
2
3
4
2
3
1
2
3
2
1
1
2
1
2
3
4
5
6
7
8
9
10
11
1
1
1
12
1
3
4
5
1
1
1
1
1
1
2
2
2
2
2
2
1
2
1
2
6
7
S=[]\nfor w in input()[:-1].split('0\n'):S=([0]+S)[~len(w):];S[0]+=1;print w+`S[0]`