Я свободно использую здесь суффикс для обозначения «любой подстроки, следующей за префиксом».
«Префикс» здесь означает НАЧАЛО слова, где начало слова определяется либо после пробела, либо с первого символа входного текста (для первого слова). «Приставка» в середине слова игнорируется.
Например, если ваш префикс ввода «arm», а вводимый текст - «Армия Дамблдора была полностью вооружена для предстоящего армагеддона», тогда список вывода содержит (y, ed, agedon).
Тестовые случаи
Предположим, что с учетом регистра строки заканчиваются после пробелов. Ввод не будет начинаться с пробела.
Удаление дубликатов необязательно.
Input prefix: "1"
Input text:
"He1in aosl 1ll j21j 1lj2j 1lj2 1ll l1j2i"
Output: (ll, lj2j, lj2) - in any permutation
Input prefix: "frac"
Input text:
"fracking fractals fracted fractional currency fractionally fractioned into fractious fractostratic fractures causing quite a fracas"
Output: (king, tals, ted, tional, tionally, tioned, tious, tostratic, tures, as)
Input prefix: "href="https://www.astrotheme.com/astrology/"
Input text:
"(div style="padding: 0; background: url('https://www.astrotheme.com/images/site/arrondi_450_hd.png') no-repeat; text-align: left; font-weight: bold; width: 450px; height: 36px")
(div class="titreFiche" style="padding: 5px 0 0 6px")(a href="https://www.astrotheme.com/astrology/Nolwenn_Leroy" title="Nolwenn Leroy: Astrology, birth chart, horoscope and astrological portrait")Nolwenn Leroy(br /)
(/div)
(div style="text-align: right; border-left: 1px solid #b2c1e2; border-right: 1px solid #b2c1e2; width: 446px; padding: 1px 1px 0; background: #eff8ff")
(table style="width: 100%")(tr)(td style="width: 220px")
(div style="padding: 0; background: url('https://www.astrotheme.com/images/site/arrondi_450_hd.png') no-repeat; text-align: left; font-weight: bold; width: 450px; height: 36px")
(div class="titreFiche" style="padding: 5px 0 0 6px")(a href="https://www.astrotheme.com/astrology/Kim_Kardashian" title="Kim Kardashian: Astrology, birth chart, horoscope and astrological portrait")Kim Kardashian(br /)(span style="font-weight: normal; font-size: 11px")Display her detailed horoscope and birth chart(/span)(/a)(/div)
(/div)
(div style="padding: 0; background: url('https://www.astrotheme.com/images/site/arrondi_450_hd.png') no-repeat; text-align: left; font-weight: bold; width: 450px; height: 36px")
(div class="titreFiche" style="padding: 5px 0 0 6px")(a href="https://www.astrotheme.com/astrology/Julia_Roberts" title="Julia Roberts: Astrology, birth chart, horoscope and astrological portrait")Julia Roberts(br /)(span style="font-weight: normal; font-size: 11px")Display her detailed horoscope and birth chart(/span)(/a)(/div)
(td id="cfcXkw9aycuj35h" style="text-align: right")
(/div)"
Output: (Nolwenn_Leroy", Kim_Kardashian", Julia_Roberts")
Победитель
Это код-гольф , поэтому побеждает меньше всего байтов. :)
Может принимать входные данные любым способом, который работает, если ваш код может решать произвольные задачи, такие как тестовые случаи.
источник
https://www.astrotheme.com/astrology/
быть префикс, когда ему предшествуетhref="
?Ответы:
R , 63 байта
Попробуйте онлайн!
Реализация в позитивном виде, к сожалению, на 5 байт длиннее из-за огромной
regmatches/gregexpr
комбинации:источник
Желе , 12 байт
Попробуйте онлайн!
источник
Japt , 9 байт
8 байтов, если мы можем принять ввод как массив слов.
Попробуйте онлайн!
источник
url('')
), ни одна из них не находится в начале.Python 2 ,
5756 байтПопробуйте онлайн!
-1 благодаря @mypetlion
источник
lambda i,j:[w[len(i):]for w in j.split()if w.find(i)==0]
за -1 байтC (gcc) ,
113109106105 байт-4 байта благодаря @LambdaBeta!
-3 байта благодаря @WindmillCookies!
Попробуйте онлайн!
источник
^0
. Просто;*t;
и&&*t;
Джапт ,
1612 байтПорт Арнаулд Ответ
-4 байта от @Shaggy
Попробуйте онлайн!
источник
05AB1E , 11 байт
Попробуйте онлайн! ( здесь демо для многострочных строк)
Как это работает?
источник
Stax , 8 байт
Запустите и отладьте его
Объяснение:
Я также мог бы использовать
x%t
(длина X, обрезка слева), которая одинаково длинна, но упакована до 9 байтов .источник
Сетчатка , 31 байт
Попробуйте онлайн! Первая строка должна быть желаемым префиксом, остальное - вводимый текст. Не удаляет дубликаты. Было бы 25 байт, если бы любой пробел был допустимым разделителем. Объяснение: Мы хотим перечислить суффиксы действительных префиксов. Соответствует
[^ ¶]+
самому суффиксу. Префикс регулярного выражения - это обзор, который гарантирует, что префикс суффикса является входным префиксом. Так как внешний вид оценивается справа налево, он начинается с сопоставления префикса (используя тот же шаблон, но внутри()
s для его захвата), затем любых символов, прежде чем окончательно сопоставить префикс в отдельной строке в начале ввода.источник
¶
что это символ новой строки, но я не могу понять, почему здесь так много нужно.¶
гарантирует, что вся первая строка соответствует префиксу. Второе¶
необходимо, потому что неизвестно, сколько существует промежуточных строк. Последние два¶
работают одинаково - классы символов с отрицанием обычно включают переводы строки, но здесь мы этого не хотим.¶
, а может и больше.Брахилог ,
2421 байтПопробуйте онлайн!
Мог бы быть на несколько байтов короче, если бы существовало совместное использование переменных со встроенными предикатами.
Input - это массив с префиксом в качестве первого элемента и текстом в качестве второго элемента.
источник
IBM / Lotus Notes Formula, 54 байта
Принимает данные из двух полей с именами
a
иb
. Работает, потому что Формула будет рекурсивно применять функцию к списку без@For
цикла.TIO недоступен, вот скриншот:
источник
APL (Dyalog Unicode) , 23 байта SBCS
Полная программа. Запрашивает текст и префикс из стандартного ввода. Список распечаток на стандартный вывод.
Попробуйте онлайн!
⎕
подсказка (для текста)⊢
дать это (отделяется'\1'
от⎕
)(
…)⎕S'\1'
PCRE Поиск и возврат списка групп захвата 1 из следующего регулярного выражения:⎕
подсказка (для префикса)'(\w+)\b',
добавить эту строку (группа символов слова, за которыми следует граница слова)5⌽
поверните первые 5 символов до конца;'\bPREFIX(\w+)'
источник
C (лязг) , 107 байт
Попробуйте онлайн!
Описание:
Должен быть лязг, потому что gcc не работает
#include <string.h>
из-за проблем с strtok.источник
MATL, 17 байт
Попробуйте это на MATL Online
Как?
Yb
- Разбить ввод на пробелы, поместить результаты в массив ячеек94
- ASCII код для^
персонажаih
- Получить ввод (скажем, "ГРП"), объединить '^' и ввод'(.*)'h
- Вставьте строку'(.*)'
в стек, объедините '^ frac' и '(. *)'. Итак, теперь у нас'^frac(.*)
есть регулярное выражение, которое соответствует «frac» в начале строки и фиксирует все, что следует после.6&XX
- Запустите сопоставление с регулярным выражением,6&
указав режим «Жетоны», т. Е. Сопоставленные группы захвата будут возвращены вместо всего совпадения.Неявно выводить результаты.
источник
'Tokens'
делает; хорошо знать!Bash + grep, 20 байтов
Префикс указывается в качестве параметра командной строки, а вводимый текст передается через stdin.
Попробуйте онлайн!
источник
PowerShell 3.0,
606259 байтПотерял несколько байтов, подавляя вывод cmatch. У меня было нестабильное решение, которое было получено путем намеренного создания дубликатов. Но он также бросал красные линии, если он не совпадал с первым, но это не хорошо, когда я думаю об этом. +2 байта, чтобы исправить это, хотя.
источник
king, tals, ted, tional, tional, tionally, tioned, tioned, tious, tostratic, tures,tures,tures, tures, as
и показывает ошибку индекса наHe1in
примере. Powershell 5.1, 6.0.2. Решение с 62 байтами в порядке.JavaScript (ES6), 57 байт
Принимает ввод в синтаксис карри
(text)(prefix)
. Не удаляет дубликаты.Попробуйте онлайн!
источник
JavaScript (Node.js) ,
6459 байт-5 байт от @Shaggy
Попробуйте онлайн!
источник
Haskell , 51 байт
Попробуйте онлайн!
источник
шелуха , 11 байт
Практически просто порт ответа на Haskell :
Попробуйте онлайн!
объяснение
источник
Желе ,
119 байтДиадическая ссылка, принимающая текст (список символов) слева и префикс (список символов) справа, который приводит к списку символов (результирующие суффиксы).
Попробуйте онлайн! (нижний колонтитул объединяется с пробелами, чтобы избежать неявного разрушения полной программы)
разрушения Примечание. Я добавил три строки с краями в строку в OP - unckckled и nofracfracheremate в начало, которые не должны выводить и fracfracit до конца, который должен выводить fracit.
Как?
предыдущий 11 байт:
Также диадическая ссылка, как указано выше.
Попробуйте онлайн!
источник
Perl 5 с -asE,
232221 байт (?)Попробуйте онлайн!
Может работать в качестве командной строки однострочника как
perl -asE 'say/^$b(.*)/ for@F' -- -b=frac -
, или с именем файла в месте последнего-
.Или из файла сценария, скажем
perl -as -M5.010 script.pl -b=frac -
(спасибо @Brad Gilbert b2gills за ссылку TIO, демонстрирующую это).Сам код составляет 18 байт, я добавил 3 байта для
-b=
параметра, который присваивает его значение (ввод префикса) переменной, названной$b
в коде. Это было похоже на исключение из обычного консенсуса "флаги не учитываются".-a
разбивает каждую входную строку на пробелы и помещает результат в массив@F
.-s
это быстрый способ присвоения аргумента командной строки в качестве переменной, указав имя в командной строке. Здесь аргумент-b=frac
, который помещает префикс "frac" в переменную$b
./^$b(.*)/
- Соответствует значению$b
в начале строки..*
это то, что приходит после этого, до конца слова, и окружающие парантезы улавливают это значение. Захваченные значения автоматически возвращаются для печатиsay
. Итерация через разделенные пробелами словаfor @F
означает, что нам не нужно проверять начальные или конечные пробелы.источник
Perl 6 , 30 байт
Проверь это
Expanded:
источник
p
и<(
необходимо, так как в противном случае это может быть видно как$v<…>
сокращение$v{qw '…'}
.Java 10, 94 байта
Попробуйте онлайн здесь .
Ungolfed:
источник
Small Basic , 242 байта
Скрипт, который не требует ввода и вывода в
TextWindow
объектПопробуйте это на SmallBasic.com! Требуется IE / Silverlight
источник
Python 2 , 53 байта
Попробуйте онлайн!
источник
Брахилог , 12 байт
Попробуйте онлайн!
Принимает ввод как
[text, prefix]
через входную переменную, и генерирует каждое слово через выходную переменную. Первоначально это был ответ Сундара, который я начал пытаться сыграть в гольф после того, как прочитал, что «он мог бы быть на несколько байт короче, если бы существовало совместное использование переменных со встроенными предикатами», что теперь возможно. Оказывается, что выход генератора экономит еще больше байтов.Мои первые две попытки сыграть в гольф, используя довольно новые возможности языка:
С глобальными переменными, на которые надеялись:
hA⁰&tṇ₁{∧A⁰;.c?∧}ˢ
(18 байт)С метапредикатом применять к голове:
ṇ₁ᵗz{tR&h;.cR∧}ˢ
(16 байтов)И мое оригинальное решение:
Брахилог , 15 байт
Попробуйте онлайн!
Тот же I / O. По сути, это генератор слов с префиксом
ṇ₁ʰ⟨∋a₀⟩
, модифицированный для удаления префикса.Совсем другой предикат с одинаковым количеством байтов:
Брахилог , 15 байт
Попробуйте онлайн!
Тот же I / O.
источник
Красный , 62 байта
Попробуйте онлайн!
источник
Pyth ,
2120181716 байтПопробуйте онлайн!
-1 с помощью
V
вместо,FN
потому чтоV
неявно устанавливаетN
-2 после дальнейшего прочтения о параметрах нарезки строк
-1 с использованием
x
для проверки наличия подстроки в индексе 0-1 используя замену на "" для получения конца строки
Я уверен, что это может использовать некоторые серьезные игры в гольф, но, как начинающий Pyth, просто получить его на работу было бонусом.
Как это работает?
источник
Excel VBA, 86 байт
Принимает ввод как префикс в
[A1]
и значения в[B1]
и выводит на консоль.источник