Вы должны взять два списка положительных целых чисел в качестве входных данных, давайте назовем их n и m .
Вы можете предположить, что:
- Все целые числа в n являются частью m
- Все целые числа в m уникальны
- Списки непустые
Задача: вернуть индексы, где вы найдете значения в n , в m .
Это может сбивать с толку, но я думаю, что контрольные примеры прояснят задачу. Примеры с 1 индексом, вы можете выбрать 0 с индексированием, если хотите (пожалуйста, укажите).
n = 5 3 4 1
m = 6 8 4 1 2 5 3 100
output: 6 7 3 4 // 5 is in the 6th position of m
// 3 is in the 7th position of m
// 4 is in the 3rd position of m
// 1 is in the 4th position of m
n = 5 3 4 9 7 5 7
m = 3 4 5 7 9
output: 3 1 2 5 4 3 4
n = 1 2 3 4 5 6
m = 1 2 3 4 5 6
output: 1 2 3 4 5 6
n = 16 27 18 12 6 26 11 24 26 20 2 8 7 12 5 22 22 2 17 4
m = 15 18 11 16 14 20 37 38 6 36 8 32 21 2 31 22 33 4 1 35 3 25 9 30 26 39 5 23 29 10 13 12 7 19 24 17 34 27 40 28
output: 4 38 2 32 9 25 3 35 25 6 14 11 33 32 27 16 16 14 36 18
n = 54
m = 54
output: 1
Победителями станут самые короткие решения на каждом языке.
Это очень хорошая мета-сообщение по пути!
Ответы:
V , 26 байтов
Попробуйте онлайн!
Это очень странное и хакерское решение, потому что V практически не имеет понятия о числах. Вход поступает в следующем формате:
С завершающим пробелом в каждой строке.
HexDump:
Объяснение:
Если это не делает его более понятным, вот примеры буфера на различных этапах, через которые проходит цикл:
Этап 1 (
|
это курсор)Этап 2:
Этап 3:
Этап 4:
Этап 5:
Этап 6:
Этап 7:
Вернуться к этапу 1:
источник
Python 2 , 25 байт
Попробуйте онлайн!
Обратите внимание, что здесь используется 0-индексирование.
источник
APL (Dyalog) , 1 байт
Попробуйте онлайн!
Примечание:
⍳
функция не принимает скаляры в качестве левого аргумента, поэтому, чтобы дать ей левый аргумент, например54
, вы должны превратить его в массив, используя,
аналогично(,54)
.источник
Mathematica, 25 байтов
Принимает два входа
m
иn
, и возвращает основанные на 1 индексыn
вm
.источник
Сетчатка ,
323130 байт1 байт сохранен благодаря Kritixi Lithos и 1 байт благодаря Martin Ender
Использует 0-индексацию. Ввод имеет пробел в каждой строке.
Попробуйте онлайн!
объяснение
Здесь мы заменяем каждое число в первой строке на число чисел перед тем же числом во второй строке.
Затем мы удаляем вторую строку, оставляя только новую первую строку в качестве вывода.
источник
Java ,
10481 байт1 байт благодаря Business cat.
Попробуйте онлайн!
источник
C #, 32 байта
Это код лямбда-выражения, поэтому он должен быть действительным.
Решение с индексом на основе 0. Я думаю, что это довольно просто, как это работает - он просто берет элементы n и выбирает индексы элементов в m.
источник
Октава, 25 байт
Попробуйте онлайн!
источник
Haskell , 32 байта
Попробуйте онлайн! Один индексированные.
Другие попытки:
источник
к, 1
Это встроенный оператор,
k
использующий индексацию с нуля.Пример:
источник
05AB1E , 5 байтов
Попробуйте онлайн!
источник
Желе , 3 байта
Попробуйте онлайн!
Спекуляции
источник
JavaScript (ES6), 28 байт
Принимает массивы в карри синтаксисе
(n)(m)
. 0 индексированные.источник
Perl 6 , 31 байт
Попытайся
Expanded:
0 проиндексировано
источник
Japt , 4 байта
Проверьте это онлайн!
объяснение
Здесь не так много, чтобы объяснить, но это демонстрирует интересную особенность Japt. Обычно вы передаете функцию
m
, например, так:Это в основном
U.map(X => V.indexOf(X))
(U
неявно). Однако, когда вы просто выполняете одну операцию между двумя значениями (b
здесь, onV
иX
), вы можете просто дать оператору и другое значение, и Japt сделает из него функцию. Это означает, чтоmX{X+2}
можно играть в гольфm+2
.Тем не менее, это не работает, когда значения находятся в неправильном порядке (
mbV
будет сокращенноmX{XbV}
). Чтобы обойти это, вы можете добавить к оператору восклицательный знак, который сообщает Japt об обмене операндами. Это стоит дополнительный байт, но он все же на пару байт короче, чем альтернатива. И теперь вы знаете немного больше о Джапте.источник
MATL , 2 байта
Это использует 1-индексирование. Попробуйте онлайн!
объяснение
Мета-функция
&
указывает, что следующая функция будет использовать (специфичную для функции) вторичную спецификацию входа / выхода по умолчанию. Для функцииm
(ismember
)&
указывает, что будет получен ее второй вывод. Он содержит индекс (первое вхождение) каждой записи первого входа во втором входе.источник
Haskell, 34 байта
Пример использования:
[5,3,4,9,7,5,7] # [3,4,5,7,9]
->[3,1,2,5,4,3,4]
Встроенный
elemIndex
вData.List
и , следовательно , больше , чем версия выше. Внешний цикл проходит,n
а внутренний цикл проходит через пары,(i,e)
гдеi
есть индексe
вm
. Держитеi
гдеe
равен текущему элементуn
.источник
R,
205 байт1-индексированных;
match
это встроенная функция, которая находит индексы на втором входе элементов первого, т.е.match(n,m)
дает желаемый ответспасибо @flodel за указание на то, что возврат функции вполне приемлем в качестве ответа!
Попробуйте онлайн!
источник
match
(5 байт) было бы приемлемым решением.Pyth , 4 байта
Попробуйте онлайн!
Обратите внимание, что здесь используется 0-индексирование.
источник
J , 2 байта
Это не полная программа, а встроенная функция.
Используйте его как таковой:
Попробуйте онлайн!
Обратите внимание, что здесь используется 0-индексирование.
источник
CJam , 4 байта
Анонимный блок, который ожидает аргументы в стеке и оставляет результат в стеке.
Использует 0-индексацию.
Попробуйте онлайн!
источник
Haskell, 43 байта
источник
Clojure, 25 байт
0 индексированные.
источник
Perl 5,
3834 байта4 байта сохранены благодаря Dada
1-индексироваться. Принимает списки m и n как единый список, например
f(@m,@n)
. Этоx0
просто для того, чтобы вывод не начинался1,2,3,4,5
и т. Д.источник
sub{...}
вы можете сэкономить 2 байта. Кроме того, вы можете использоватьx0
вместо того,&&()
чтобы сохранить еще два байта.PHP, 56 байт
Онлайн версии
0 Индексирование
вывод в виде строки
PHP, 65 байт
Вывод в виде массива
PHP, 78 байт
Обходной путь с
array_map
для не уникальных массивов заменить на
array_flip($_GET[1])[$v]
array_search($v,$_GET[1])
источник
Bash + coreutils, 51
Попробуйте онлайн .
Предыдущий ответ:
Попробуйте онлайн .
источник
Java 7, 80 байт
0 индексированные
Объяснение:
Тестовый код:
Попробуй это здесь.
Выход:
источник