Ви не ненавидите це, коли ви хочете скопіювати та вставити список номерів (вектор, масив ...) з однієї програми в іншу, але формат, на якому є номери, не відповідає формату, який вам потрібен ?
Наприклад, у MATLAB у вас може бути розділений пробілом такий список:
[1 2 3 4 5] (you can also have it comma separated, but that's not the point)
У Python вам потрібно буде вставити коми, щоб зробити цей список дійсним введенням, тому вам доведеться його перетворити
[1, 2, 3, 4, 5]
щоб змусити його працювати. У мові C ++ ви хочете щось подібне:
{16,2,77,29}
і так далі.
Щоб спростити життя кожному, давайте створимо перетворювач списку, який приймає список у будь-якому форматі *, і виводить його в інший заданий формат.
Дійсні дужки:
[list]
{list}
(list)
<list>
list (no surrounding brackets)
Дійсні роздільники:
a,b,c
a;b;c
a b c
a, b, c <-- Several spaces. Must only be supported as input.
a; b; c <-- Several spaces. Must only be supported as input.
a b c <-- Several spaces. Must only be supported as input.
Зверніть увагу, вхід може мати будь-яку кількість прогалин між числами, але вихід може вибрати , щоб мати нульові пробілу (якщо , ,
або ;
використовують в якості роздільника), або єдиний простір (якщо це розділення пробілу).
Окрім списку введення, буде рядок (або два символи), який визначає вихідний формат. Рядок формату першої буде типом відкриває дужки (тільки), [
, (
, <
, {
або (останній з яких є єдиним простір використовується , коли немає навколишнього дужки). Тип дужки буде супроводжуватися типом роздільника
,
, ;
або (останній - це єдиний пробіл). Два символи вхідного формату слід сприймати як один аргумент (рядок або два послідовних символи) у порядку, описаному вище.
Деякі приклади рядків формату:
[, <-- Output format: [a,b,c]
{; <-- Output format: {a;b;c}
<-- Two spaces, output list has format: a b c
Правила:
- На виході не може бути провідних пробілів
- Вихід може мати пробіли та новий рядок
- Висновок повинен тільки бути список номерів, які не
ans =
або аналогічних
- Висновок повинен тільки бути список номерів, які не
- Вхідним записом буде список цілих чи десяткових чисел (як позитивних, так і від’ємних (і нульових)) та рядок з двох символів
- Якщо вхід складається з лише цілих чисел, у списку вихідних даних мають бути лише цілі числа. Якщо вхідний список складається з цілих чисел і десяткових чисел, всі вихідні числа можуть бути десятковими числами. (Необов’язково зберігати цілі числа як цілі числа)
- Максимальна кількість цифр після десяткової крапки, яку необхідно підтримувати, становить 3.
- Вхідними даними будуть два аргументи. Тобто числа є одним аргументом, а рядок формату - єдиним аргументом.
- Код може бути програмою або функцією
- Вхід може бути аргументом функції або STDIN
Деякі приклади:
1 2 3 4
[,
[1,2,3,4]
<1; 2; 3>
; <-- Space + semicolon
1;2;3
not valid: 1.000;2.000;3.000 (Input is only integers => Output must be integers)
{-1.3, 3.4, 4, 5.55555555}
[,
[-1.300,3.400,4.000,5.556] (5.555 is also valid. Rounding is optional)
also valid: [-1.3,3.4,4,5.55555555]
Виграє найкоротший код у байтах. Як завжди, переможець буде обраний через тиждень з дня опублікування виклику. Відповіді, опубліковані пізніше, все одно можуть виграти, якщо вони коротші за поточного переможця.
Таблиця лідерів
Фрагмент стека внизу цієї публікації генерує каталог з відповідей а) як список найкоротших варіантів для кожної мови та б) як загальний таблиця лідерів.
Щоб переконатися, що ваша відповідь відображається, будь ласка, почніть свою відповідь із заголовка, використовуючи наступний шаблон Markdown:
## Language Name, N bytes
де N
розмір вашого подання. Якщо ви покращите свій рахунок, ви можете зберегти старі бали у заголовку, прокресливши їх. Наприклад:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Якщо ви хочете включити у свій заголовок декілька чисел (наприклад, тому що ваш результат - це сума двох файлів або ви хочете окремо перерахувати штрафні санкції для перекладача), переконайтесь, що фактичний результат - це останнє число у заголовку:
## Perl, 43 + 2 (-p flag) = 45 bytes
Ви також можете зробити ім'я мови посиланням, яке з’явиться у фрагменті:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
_
для позначення негативних елементів. :(