課題は、Pythonが行うように文字列を解析し、文字列の内容を出力することです。
- 入力(コマンドライン引数またはstdin):文字列リテラル(例:
"hello"
)(または複数のリテラル、以下の文字列リテラル連結を参照) - 出力(stdout) :文字列の内容(例えば
hello
)
文字列を解析するためのルール:
- 文字列リテラルは
'a'
、一重引用符()、二重引用符("a"
)、三重単一引用符('''a'''
)、または三重二重引用符("""a"""
)の対応するペアで囲まれます。文字列を開いたタイプの引用符の最初の再発は、文字列を終了します。 - バックスラッシュエスケープ:
\'
文字列内となり'
、\"
となり"
と\\
なり\
。他のバックスラッシュエスケープを実装する必要はありません。エスケープシーケンスの一部ではないバックスラッシュは、バックスラッシュのままです。 - 文字列リテラルの連結:隣接する文字列リテラルの内容が連結されます。たとえば、に
"hello" 'world'
なりhelloworld
ます。 - 入力には、リテラルの一部ではないスペースが含まれている可能性があります。
- リテラルの内外で、他の種類の空白をサポートする必要はありません。
追加のルール:
eval
、exec
および同様のものは、リテラルまたはその一部を解析することはできません。- 入力は有効であると想定できます。
- 最大入力長は1023文字と想定できます。
例:
"hello" ' world'
->hello world
"""\"""'\\\A"""
->"""'\\A
( '''"""'''"""'''""" )
(括弧なし、ただしスペースあり)->"""'''
最短のコードが勝ちます。