Вызов:
Входные данные:
Сортированный список натуральных чисел.
Выход:
Количество целых чисел, которые все еще имеют точно такой же индекс, после поворота цифр в каждом целом числе на количество индексов влево и повторной сортировки измененного списка.
Пример:
Входные данные: [8,49,73,102,259,762,2782,3383,9217,37846,89487,7471788]
Выходные данные (индексация на основе 0): 6
Выходные данные (индексация на основе 1):5
Почему?
Индексирование на основе 0:
After rotating each: [8,94,73,102,592,276,8227,3338,9217,63784,89487,7887471]
Sorted again: [8,73,94,102,276,592,3338,8227,9217,63784,89487,7887471]
Input indices: 0 1 2 3 4 5 6 7 8 9 10 11
Original input-list: [8,49,73,102,259,762,2782,3383,9217,37846,89487,7471788]
Modified list: [8,73,94,102,276,592,3338,8227,9217,63784,89487,7887471]
Modified indices: 0 2 1 3 5 4 7 6 8 9 10 11
Equal indices: ^ ^ ^ ^ ^ ^
So the output is: 6
Индексирование на основе 1:
After rotating each: [8,49,37,021,925,762,2278,3383,2179,37846,94878,8874717]
Sorted again: [8,(0)21,37,49,762,925,2179,2278,3383,37846,94878,8874717]
Input indices: 1 2 3 4 5 6 7 8 9 10 11 12
Original input-list: [8,49,73,102,259,762,2782,3383,9217,37846,89487,7471788]
Modified list: [8,21,37,49,762,925,2179,2278,3383,37846,94878,8874717]
Modified indices: 1 4 3 2 6 5 9 7 8 10 11 12
Equal indices: ^ ^ ^ ^ ^
So the output is: 5
Правила соревнований:
- Входной список гарантированно содержит только положительные целые числа.
- Входной список гарантированно сортируется по убыванию.
- Входной список гарантированно содержит как минимум два элемента.
- Как вы можете видеть выше, индексация на основе 0 и 1 допускается. Пожалуйста, укажите в своем ответе, какой из двух вы использовали, так как результаты могут отличаться соответственно!
- Начальные
0
s после поворота игнорируются, что видно из приведенного выше примера на основе 1, где целое число102
становится021
после поворота, а затем обрабатывается как21
. - Целые числа гарантированно уникальны во входном списке и гарантированно останутся уникальными после завершения поворотов.
- Обратите внимание, что мы только смотрим на позиции повернутых целых чисел в корреляции с позициями ввода, а не со значениями списка ввода. Чтобы прояснить, что я имею в виду под этим: с помощью списка ввода
[1234,3412]
и индексации на основе 1, список становится[2341,1234]
после поворота каждого целого числа его индексным числом раз, а затем, когда сортировка становится[1234,2341]
. Хотя и исходный список ввода, и повернутый список содержат целое число1234
в верхней позиции, они не совпадают! Вращенный1234
был3412
раньше. Таким образом, 1-индексированный вывод для этого входного списка -0
два целых числа поменялись местами. - Ввод гибкий. Может быть списком / потоком / массивом целых чисел / строк / цифр-массивов и т. Д. Пожалуйста, укажите, что вы использовали, если вы не принимаете входные данные как целые числа.
Основные правила:
- Это код-гольф , поэтому выигрывает самый короткий ответ в байтах.
Не позволяйте языкам кода-гольфа отговаривать вас от публикации ответов на языках, не относящихся к кодексу. Попробуйте придумать как можно более короткий ответ для «любого» языка программирования. - Стандартные правила применяются к вашему ответу с правилами ввода / вывода по умолчанию , поэтому вам разрешено использовать STDIN / STDOUT, функции / метод с правильными параметрами и типом возврата, полные программы. Ваш звонок.
- По умолчанию лазейки запрещены.
- Если возможно, добавьте ссылку с тестом для вашего кода (например, TIO ).
- Кроме того, добавление объяснения для вашего ответа настоятельно рекомендуется.
Тестовые случаи:
Input: [8, 49, 73, 102, 259, 762, 2782, 3383, 9217, 37846, 89487, 7471788]
0-based output: 6
1-based output: 5
Input: [1234, 3412]
0-based output: 2
1-based output: 0
Input: [2349, 2820, 17499, 21244, 29842, 31857, 46645, 56675, 61643, 61787]
0-based output: 3
1-based output: 0
Input: [4976, 11087, 18732, 22643, 52735]
0-based output: 2
1-based output: 3
Input: [4414, 5866, 7175, 8929, 14048, 16228, 16809, 19166, 24408, 25220, 29333, 44274, 47275, 47518, 53355]
0-based output: 4
1-based output: 4
Input: [11205, 16820, 63494]
0-based output: 1
1-based output: 3
Не стесняйтесь генерировать больше случайных тестовых случаев с (или черпать вдохновение) из этой незагладленной программы 05AB1E , где вход - это размер случайного списка (ПРИМЕЧАНИЕ: выходные данные этого генератора могут не соответствовать правилу « Целые числа гарантированно уникальны в входной список, и гарантированно останется уникальным после завершения поворотов ", так что имейте это в виду при его использовании.)
Ответы:
R ,
114107 байт-5 байт благодаря Джузеппе.
Отстала от digEmAll.
Попробуйте онлайн!
0 индексированные.
Безголовая версия:
Чтобы повернуть
b
цифры целого числа поj
позициям, код повторяет цифры много раз, а затем переводит цифры в позицииj+1
вj+b
. Например, чтобы повернуть102
4 раза, оставьте значения, отмеченные знакомx
(позиции с 5 по 7):так что результат есть
021
.источник
seq(a=...)
. Я ожидаю, что есть какое-тоMap
волшебство, но мои попытки в лучшем случае оставили количество байтов неизменным.Map
может быть слишком дорого, так какfunction
шаблон не менее 9 байтов, но если вы переключитесь на 0-индексирование, мы можем сделать 109 байтовseq(a=l)
может бытьseq(l)
до тех пор, пока на входе есть как минимум 2 элемента (я спросил, все ли в порядке).05AB1E , 9 байтов
Попробуйте онлайн!
Использует индексирование на основе 0.
Объяснение:
источник
Japt
-x
,109 байт0 на основе
Попытайся
источник
Желе , 9 байт
Попробуйте онлайн!
Монадическая ссылка, которая принимает список целых чисел и возвращает целое число, указывающее количество целых чисел, которые остаются на месте после выполнения поворота с использованием 1-индексации.
объяснение
источник
Python 2 ,
1041009793 байтаПопробуйте онлайн!
Индексирование на основе 0.
Сначала вращается каждое число, а затем сравнивается результат с результатом, но сортируется.
Добавлено:
источник
input()
:)def
сразу (они довольно бесполезны в Python 2, в отличие от Python 3).s
.R ,
908885 байтПопробуйте онлайн!
Развернутый код с объяснением:
источник
J ,
2826 байт-2 байта благодаря Ионе
Попробуйте онлайн!
источник
"0
( Попробуйте онлайн! ), Но кроме этого я не видел пути к гольфу дальше.Stax ,
1110 байтЗапустите и отладьте его
Эта программа использует индексирование на основе 0 и принимает входные данные в виде массива строк. Я сохранил байт, воспользовавшись возможностью ввода новых данных.
источник
Perl 5
-pa
, 80 байтПопробуйте онлайн!
Принимает ввод в виде разделенных пробелами чисел на STDIN; дает 1 основанный результат.
источник
Pyth , 15 байт
Попробуйте онлайн! Использует индексирование на основе 0.
источник
s
- оригинальная версия кода имелаv
тот же эффект. Я отредактирую это обратноAPL + WIN,
23, 2119 байт2 байта сохраняются путем ввода целых чисел как вложенного вектора символов
1 проиндексировано.
Попробуйте онлайн! Предоставлено Dyalog Classic
источник
JavaScript (Node.js) ,
1079995 байт-8 байт Спасибо @Shaggy за то, что он принял массив строк. Далее откатали 4 байта от этого. На этот раз не вызовет ошибку памяти.
Попробуйте онлайн!
JavaScript (Node.js) ,
111107 байт-4 байта Спасибо @ Арнаулд!
Попробуйте онлайн!
JavaScript (Node.js) ,
113111 байтПопробуйте онлайн!
0 индексированные. Может вызвать ошибку памяти для очень больших записей.
источник
Perl 6 , 50 байт
Попробуйте онлайн!
Индексирование на основе 0. Также выявлена ошибка Rakudo .
объяснение
источник
PHP ,
159141134130 байтПопробуйте онлайн!
Индексирование на основе нуля.
Ungolfed:
источник
.=''
?К (Кона) ,
2521 байт-4 байта благодаря ngn!
Попробуйте онлайн!
источник
{.:y!x}'[$x;t:!#x]
->.:'(t:!#x)!'$x
Запрос T-SQL, 99 байт
В Sql нет вращающегося метода, поэтому мне пришлось реализовать собственный синтаксис, поскольку это запрос, его нужно было выполнять без зацикливания.
Индексирование на основе 0.
Использование табличной переменной в качестве входных данных.
Попробуйте онлайн
источник
Значок , 141 байт
Попробуйте онлайн!
Индексирование на основе 1
источник
Perl 5 , 104 байта
Попробуйте онлайн!
Индексирование на основе 0 в Perl. Развернулся и прокомментировал:
источник
Рубин
-ap
, 77 байт1-индексироваться. Был временно удален, потому что я пропустил часть спецификации.
-p
читает строку STDIN и выводит$_
в конце.-a
разбивает эту строку на пробелы и сохраняет ее как$F
.Попробуйте онлайн!
источник
[...].join.to_i
наeval [...]*''
eval
будет интерпретировать его как число с номером 8, что может испортить счет ...Wolfram Language (Mathematica) , 65 байт
Попробуйте онлайн!
1 на основе. Мы принимаем входные данные как список списков цифр, который работает, потому что Mathematica упорядочивает списки по длине, а затем лексикографически, то есть точно так же, как и исходные числа.
источник
Баш ,
204201 байтЕдинственная интересная вещь здесь (возможно), это использование
eval
. Алгоритм также неуклюж в том, что он создает отсортированный список, а затем читает его, чтобы определить измененные индексы / индексы.1-решение Спасибо @RobinRyder за полезный алгоритм вращения.
Попробуйте онлайн!
Пересмотренный код после комментариев Кевина; Попробуйте онлайн!
источник
;}
. Кроме того, вы можете изменить свой первый цикл наfor((i=0;++i<=$#;));
.Scala ,
200160 байтПопробуйте онлайн!
0 индексированные. 160 символов после удаления отступов и новых строк. Это печатает 6:
источник