Aperçu:
Votre travail consiste à prendre l'entrée CSV au key=value
format et à l'aligner de manière plus organisée (voir ci-dessous).
Contribution:
Toujours via stdin . Les enregistrements seront toujours sous la forme suivante key=value
:
foo=bar,baz=quux
abc=123,foo=fubar
baz=qwe,abc=rty,zxc=uiop,foo=asdf
- Il n'y aura pas de liste de clés possibles à l'avance, vous devez les trouver dans le texte saisi.
- La fin de l'entrée sera signalée par
EOF
, quelle que soit l'implémentation deEOF
appropriée à votre système d'exploitation.
Production:
La première ligne de votre sortie sera une liste de toutes les clés, par ordre alphabétique (même si les clés sont toutes des nombres). Après cela, imprimez chaque enregistrement dans le même format CSV l'en-tête de numéro approprié, sans les clés répertoriées. Ainsi, pour l'exemple ci-dessus, la sortie correcte serait:
abc,baz,foo,zxc
,quux,bar,
123,,fubar,
rty,qwe,asdf,uiop
FAQ:
- Dois-je m'inquiéter d'une entrée mal formatée?
- Non. Votre programme peut faire ce qu'il veut (lever une exception, ignorer, etc.) si l'entrée n'est pas correctement formatée, par exemple une ligne de
foo,bar,baz
- Non. Votre programme peut faire ce qu'il veut (lever une exception, ignorer, etc.) si l'entrée n'est pas correctement formatée, par exemple une ligne de
- Comment gérer les caractères spéciaux d'échappement?
- Vous pouvez supposer qu'il n'y aura pas de données supplémentaires
,
ou=
dans les données qui ne font pas partie dukey=value
format."
n'a pas de signification particulière dans ce concours (même si c'est le cas en CSV traditionnel).n'est pas spécial non plus.
- Les lignes doivent correspondre à l'expression régulière suivante:
^([^=,]+=[^=,]+)(,[^=,]+=[^=,]+)*$
- Par conséquent, les clés et les valeurs correspondront
[^=,]+
- Par conséquent, les clés et les valeurs correspondront
- Vous pouvez supposer qu'il n'y aura pas de données supplémentaires
- Et
CRLF
contreLF
?- Vous pouvez choisir le délimiteur approprié à votre plateforme. La plupart des langues gèrent cela sans code de délimitation spécial.
- Dois-je imprimer des virgules de fin si les dernières colonnes n'existent pas?
- Oui. Voir l'exemple.
- Les analyseurs CSV ou autres outils externes similaires sont-ils autorisés?
- Non. Vous devez analyser les données vous-même.