Задача состоит в том, чтобы проанализировать строку, как это делает Python, и распечатать ее содержимое.
- Входные данные (аргумент командной строки или стандартный ввод) : строковый литерал (например,
"hello") (или несколько литералов, см. Конкатенацию строкового литерала ниже) - Выход (stdout) : содержимое строки (например
hello)
Правила разбора строки:
- Строковый литерал заключен в соответствующие пары одинарных кавычек (
'a'), двойных кавычек ("a"), тройных одинарных кавычек ('''a''') или тройных двойных кавычек ("""a"""). Первое повторение типа кавычек, открывших строку, завершает строку. - Обратная косая черта уходит:
\'внутри строки становится',\"становится"и\\становится\. Вам не нужно реализовывать любые другие обратные слэши. Обратная косая черта, которая не является частью escape-последовательности, остается обратной косой чертой. - Конкатенация строковых литералов: Содержимое смежных строковых литералов объединяется. Например,
"hello" 'world'становитсяhelloworld. - Входные данные могут содержать пробелы, которые не являются частью какого-либо литерала.
- Вам не нужно поддерживать какие-либо другие виды пробелов, ни внутри, ни за пределами литералов.
Дополнительные правила:
eval,execИ подобные вещи не допускаются для разбора буквальных или его части.- Вы можете предположить, что ввод действителен.
- Вы можете принять максимальную длину ввода 1023 символа.
Примеры:
"hello" ' world'->hello world"""\"""'\\\A"""->"""'\\A( '''"""'''"""'''""" )(без скобок, но с пробелами) ->"""'''
Самый короткий код выигрывает.