Назовем непустой список строк мезой, если выполняются следующие условия:
- Каждая указанная строка непуста и использует только символы, которые встречаются в первой строке.
- Каждая последующая строка ровно на один символ длиннее предыдущей строки.
- Ни одна строка в списке не является подпоследовательностью любой другой строки в списке.
Термин «меза» происходит от такой визуализации (где x
символы должны быть различными):
xx..x
xx..xx
xx..xxx
.
.
.
xx..xxx..x
NB: Это математический факт, что только конечное число мез начинается с заданной строки. Обратите внимание на различие между подпоследовательностью и подстрокой ; например, «анна» является подпоследовательностью (но не подстрокой) «банана».
Вызов:
- Напишите самую короткую программу, которая принимает произвольную непустую буквенно-цифровую строку ввода и выводит число мез, начинающихся с этой строки.
Вход (стандартный):
- Любая непустая буквенно-цифровая строка.
Выход (стандартный вывод):
- Количество мез, которые начинаются с входной строки.
Подсчет очков:
- Победителем становится программа с наименьшим количеством байтов.
Пример мезы
Только одна меза начинается с a
:
a
Только одна меза начинается с aa
:
aa
Многие мезы начинаются с ab
:
ab ab ab ab (and so on)
baa aaa bbb
bbba bbaa
baaaa
aaaaaa
ab
,bbb
как меза, просто остановиться на втором семестре. Это действительно? Или они всегда должны быть сделаны как можно дольше? Кроме того , если имеется несколько возможных перестановки вnth
перспективе (напримерbaa
,aba
,aab
), не все они учитываются как отдельные Месасы , а также ( при условии , конечно , все они следуют правилам)?ab
,ab/baa
,ab/bbb
,ab/bbb/bbaa
,ab/bbb/bbaa/baaaa
,ab/bbb/bbaa/baaaa/aaaaaa
разные Mesas.Ответы:
GolfScript (
106103 символов)Конечно, где-то в сердце есть какой-то код из строки X - подпоследовательность строки Y?
источник
Рубин, 142 персонажа
Этот алгоритм является конструктивным, то есть он строит все возможные мезы для входной строки и считает их. Это делает программу очень, очень медленной - но эй, это Codegolf.
Пример работы:
источник
aab
), имеют допустимую длину, но я не уверен - ваша программа работала около часа для этого примера. NB. Не будет осуществимого вывода для любого ввода, включающего более двух различных букв; например, некоторые из мез, начинающихся с,abc
имеют длину, превышающую 7000-е число Аккермана .300,000
записи с помощью,aab
я все еще видел, что первые 10 или около того терминов были идентичными. Поэтому я думаю, что это может быть неосуществимо для чего-то большего, чем два персонажа. По крайней мере, не без интеллектуальных и эвристических расчетов.