バックグラウンド
あなたは自動車販売会社のプログラマーとして働いています。今週のタスクは、さまざまな自動車メーカーから入手可能なモデルに関するデータを取り込み、最新モデルに関する情報をきれいに印刷するXMLパーサーをプログラムすることです。幸いなことに、テスト部門が提供したテストケースは1つだけです!それを渡すコードをより速く書くことができるほど、その週の残りの時間を先延ばしにする時間が増えます。
入力
入力は、テスト部門から提供されたまさにこのXMLデータです。一部の自動車メーカー、その自動車のシリーズ、およびこれらのシリーズのモデルに関するデータが含まれています。末尾の改行を想定できます。
<?xml version="1.0" ?>
<products>
<manufacturer name="Test Manufacturer 1">
<series title="Supercar" code="S1">
<model>
<name>Road Czar</name>
<code>C</code>
<year>2011</year>
</model>
<model>
<name>Ubervehicle</name>
<code>U</code>
<year>2013</year>
</model>
<model>
<name>Incredibulus</name>
<code>I</code>
<year>2015</year>
</model>
<model>
<name>Model 1</name>
<code>01</code>
<year>2010</year>
</model>
</series>
<series title="Test series 22" code="Test">
<model>
<name>Test model asdafds</name>
<code>TT</code>
<year>2014</year>
</model>
</series>
</manufacturer>
<manufacturer name="Car Corporation">
<series title="Corporation Car" code="CC">
<model>
<name>First and Only Model</name>
<code>FOM</code>
<year>2012</year>
</model>
</series>
</manufacturer>
<manufacturer name="Second Test Manufacturer">
<series title="AAAAAAAAAAAAAA" code="D">
<model>
<name>Some older model</name>
<code>O</code>
<year>2011</year>
</model>
<model>
<name>The newest model</name>
<code>N</code>
<year>2014</year>
</model>
</series>
<series title="BBBBBBBBBBBBBBB" code="asdf">
<model>
<name>Another newest model here</name>
<code>TT</code>
<year>2015</year>
</model>
</series>
</manufacturer>
</products>
出力
出力はこの文字列です。自動車メーカーをアルファベット順にリストし、その後にコロンとそのシリーズの数を示します。各製造元の下に、各モデルのシリーズ名、モデル名、およびコードがリストされ、最新のものから順に年が遡ります。印刷時に出力がこれに似ている限り、末尾の空白と改行は許容されます。
Car Corporation: 1 series
Corporation Car, First and Only Model (CC-FOM)
Second Test Manufacturer: 2 series
BBBBBBBBBBBBBBB, Another newest model here (asdf-TT)
AAAAAAAAAAAAAA, The newest model (D-N)
AAAAAAAAAAAAAA, Some older model (D-O)
Test Manufacturer 1: 2 series
Supercar, Incredibulus (S1-I)
Test series 22, Test model asdafds (Test-TT)
Supercar, Ubervehicle (S1-U)
Supercar, Road Czar (S1-C)
Supercar, Model 1 (S1-01)
ルールとスコアリング
関数または完全なプログラムを記述できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。
入力は固定されていることに注意してください。ここで指定されている以外の入力をサポートする必要はありません。入力が何らかの方法で変更された場合、プログラムはナンセンスを返すこともクラッシュすることもできます。必要に応じて、入力を無視し、出力をハードコーディングすることもできます。ただし、XMLまたはHTMLパーサーライブラリまたはビルトインを使用することはできません。