Przegląd:
Twoim zadaniem jest pobranie formatu CSV key=value
i ułożenie go w bardziej uporządkowany sposób (patrz poniżej).
Wejście:
Zawsze za pośrednictwem standardowego wejścia . Zapisy będą zawsze miały następującą formę key=value
:
foo=bar,baz=quux
abc=123,foo=fubar
baz=qwe,abc=rty,zxc=uiop,foo=asdf
- Nie będzie z góry listy możliwych kluczy, musisz je znaleźć w tekście wejściowym.
- Koniec wejścia zostanie zasygnalizowany przez
EOF
dowolną implementacjęEOF
odpowiednią dla twojego systemu operacyjnego.
Wynik:
Pierwszy wiersz wyniku będzie listą wszystkich klawiszy, w kolejności alfabetycznej (nawet jeśli wszystkie klawisze są cyframi). Następnie wydrukuj każdy rekord w tym samym formacie CSV z odpowiednim nagłówkiem numeru, bez wymienionych kluczy. Tak więc w powyższym przykładzie poprawne dane wyjściowe to:
abc,baz,foo,zxc
,quux,bar,
123,,fubar,
rty,qwe,asdf,uiop
FAQ:
- Czy muszę się martwić o niewłaściwie sformatowane dane wejściowe?
- Nie. Twój program może zrobić, co chce (wyrzucić wyjątek, zignorować itp.), Jeśli dane wejściowe nie są poprawnie sformatowane, np. Wiersz
foo,bar,baz
- Nie. Twój program może zrobić, co chce (wyrzucić wyjątek, zignorować itp.), Jeśli dane wejściowe nie są poprawnie sformatowane, np. Wiersz
- Jak radzić sobie z uciekającymi postaciami specjalnymi?
- Możesz założyć, że nie będzie żadnych dodatkowych danych
,
ani=
danych, które nie są częściąkey=value
formatu."
nie ma żadnego specjalnego znaczenia w tym konkursie (chociaż ma to miejsce w tradycyjnym CSV).nie jest też w żaden sposób wyjątkowy.
- Linie powinny pasować do następującego wyrażenia regularnego:
^([^=,]+=[^=,]+)(,[^=,]+=[^=,]+)*$
- Dlatego oba klucze i wartości będą do siebie pasować
[^=,]+
- Dlatego oba klucze i wartości będą do siebie pasować
- Możesz założyć, że nie będzie żadnych dodatkowych danych
- Co o
CRLF
wersetachLF
?- Możesz wybrać dowolny separator odpowiedni dla Twojej platformy. Większość języków obsługuje to bez specjalnego kodu ograniczającego.
- Czy muszę drukować przecinki końcowe, jeśli kilka ostatnich kolumn nie istnieje?
- Tak. Zobacz przykład.
- Czy parsery CSV lub inne podobne narzędzia zewnętrzne są dozwolone?
- Nie. Musisz samodzielnie przeanalizować dane.