Вызов :
Проверьте, образует ли данное число number staircase
или нет
Вход:
Целое число (больше 0 и не десятичное). ПРИМЕЧАНИЕ: Вы можете принять ввод как строку, массив цифр.
Выход :
истинное / ложное значение в зависимости от того, образует ли число лестницу или нет
Номер лестницы:
Цифровая лестница - это целое число, которое при чтении слева направо:
- Начинается с 1
- за которым может следовать 2
- за которым может следовать 3
- и так до
n
- затем число уменьшается, начиная с n - 1
- тогда n - 2
- тогда n - 3
- и так до тех пор, пока не достигнет 1
Замечания :
Часть может быть использована для указания того, что если длина> больше 1. Если это так, то порядок должен соблюдаться как есть. то есть: 12321
Пример :
12321 ---> true
12345654321 ---> true
9 ---> false
1 ---> true
2 ---> false
123421 ---> false
112312318901323 ---> false
123456789101110987654321 ---> true
Замечания :
Заданный ввод всегда будет целым числом больше 0 и не будет десятичным. Ваш вывод должен быть truthy or falsy
значением в зависимости от ввода
Ограничения:
Это код-гольф, поэтому выигрывает самый короткий код в байтах (для каждого языка программирования).
code-golf
math
number
decision-problem
Мухаммед Салман
источник
источник
[1,2,3,4,5,6,7,8,9,1,0,1,1,1,0,9,8,7,6,5,4,3,2,1]
для123456789101110987654321
?Ответы:
R , 97 байт
Попробуйте онлайн!
Принимает
n
какcharacter
илиinteger
; использованиеcharacter
даст правильные результаты для целых чисел, которые не могут быть точно определены как 64-битныеdouble
.Генерирует лестничные числа, пока не найдет их хотя бы столько, сколько
n
есть, затем проверяет на равенство.Эквивалентно:
источник
function(n)
сn=scan();
быть короче? (для целых чисел, конечно)Желе , 5 байт
Попробуйте онлайн!
Предупреждение: очень медленно (быстро
1
и121
) ПриготовьтесьDL
сделать это быстрее.источник
JavaScript (ES6),
6257 байтСохранено 2 байта благодаря @ l4m2
Возвращает логическое значение.
Попробуйте онлайн!
Как?
Начиная с k = 1 , мы ищем k в начале и в конце строки и рекурсивно повторяем процесс на оставшейся средней подстроке с помощью k + 1 . Рекурсия прекращается, как только больше нет совпадений. Вводом является номер лестницы, если последняя подстрока равна k .
Пример для s = "1234321":
источник
m[0]==s&
вместо этого заставило бы пройти все тестовые случаи (но все равно не сработало на других, таких как"123217"
).f=(s,k=1)=>(m=s.match(`^${k}(.*)${k}$`))?f(m[1],k+1):s==k
?Haskell ,
5554 байта-1 байт благодаря Лайкони !
Попробуйте онлайн!
источник
Pyth,
1312 байтСохранил байт благодаря РК.
Попробуй здесь
объяснение
Если вы действительно хотите ввести как целое число, вы можете использовать
}Qmsjk+Sd_Std
вместо этого, но это ужасно медленно.источник
/
вместо}Q
него можно использовать автозаполнениеQ
в концеPython 2 , 69 байт
Попробуйте онлайн!
источник
C # (интерактивный компилятор Visual C #) ,
138107102 байтПопробуйте онлайн!
Объяснение:
источник
Zip...Skip
метод в моем предыдущем комментарии терпит неудачу[1,1]
, который должен вернуться,true
если я понимаю спецификацию. Я удалил это.05AB1E ,
98 байтПредупреждение: ЧРЕЗВЫЧАЙНО МЕДЛЕННО! Добавьте
g
к началу, чтобы ускорить его.Попробуйте онлайн!
Объяснение:
Старое объяснение:
Попробуйте онлайн!
источник
gLη€ûJså
- это еще один пример , где вы можете увидеть векторизацию палиндромизации, используя€û
каждый палиндромиз.gLη€ûJså
за 8 байт, которые не взрывают TIO.Python 2 , 77 байт
Попробуйте онлайн!
источник
Stax , 14 байт
Запустите и отладьте его
Очень медленно для больших чисел.
источник
Атташе ,
575546 байтПопробуйте онлайн! Ах, это намного элегантнее.
С
Generate
(49 байтов):объяснение
Функция генерации просто создает
N
номер лестницы. Затем этот поиск прекращается, как только`>=:`#&_
удовлетворено. Расширено это:Таким образом, это заканчивается, как только длина выходных данных функции генерации равна по крайней мере длине входов. Таким образом, это генерирует наименьший номер лестницы, по крайней мере, столько же, сколько и входной номер. Таким образом, если входными данными является номер лестницы, результатом будет тот же номер лестницы, а в противном случае следующий самый длинный номер лестницы. Таким образом, простой проверки с равенством исходному вводу достаточно для определения, был ли это номер лестницы.
Атташе, 55 байт
Попробуйте онлайн! С планом рекурсии.
источник
J , 40 байт
Попробуйте онлайн!
Я не совсем доволен этим soluiton - много
@
и боксом<
.источник
СНОБОЛ4 (CSNOBOL4) , 109 байт
Попробуйте онлайн!
Любопытно, что замена
'1'
во второй строке1
приводит к сбою программы на входе1
.источник
К , 36 байт
Принимает строку, такую как «12321» в качестве параметра.
Эта функция написана в виде длинной цепочки приложений функций
f g h x
, поэтому читайте закомментированные версии снизу вверх.{x+1}
islambda x: x+1
, x это имя параметра по умолчанию. Проверьте https://pastebin.com/cRwXJn7Z или справку переводчика для значений оператора.Мы генерируем номер лестницы с
n
посередине{,/$(1+!x),1+1_|!x}
:Вся функция
{|/($x)~/:{,/$(1+!x),1+1_|!x}'1+!#x}
:источник
Хаскелл ,
646058 байт-6 спасибо @BMO!
Попробуйте онлайн!
источник
12345678910987654321
, если вы можете создать список с таким количеством элементов.Perl 5
-lp
, 49 байтПопробуйте онлайн!
0
= правда, все остальное = ложьисточник
Java 10, 142 байта
Попробуйте онлайн.
Объяснение:
источник
Japt, 11 байт
Принимает ввод в виде строки.
Попытайся
объяснение
Альтернатива,
109 байтЭто решение, которое может принимать входные данные в виде строки или целого числа, вернет массив чисел для правдивых данных или, в конечном итоге, выдаст ошибку для Falsey, если до этого не повредил ваш браузер. Используйте с осторожностью.
Попытайся
источник
Retina ,
4543 байтаПопробуйте онлайн! Ссылка включает в себя тестовые случаи. Изменить: Сохранено 2 байта благодаря @Leo. Объяснение:
Инициализировать
n
до1
.Пока
s
начинается и заканчиваетсяn
:Удалить
n
с концовs
и увеличитьn
.Проверьте,
n
осталось ли .источник
\d
можете стать.
и сохранить вам два байтаRegex (PCRE) , 92 байта
Попробуйте онлайн!
Я открыт для любых предложений по улучшению этого.
источник
Спасибо следующим пользователям:
Python 2 , 147 байт
Попробуйте онлайн!
источник
true
иfalse
но truthy и falsey значения.1
и0
будет работать, например,s[0]
вместоstartswith
? Ошибки допускаются, и вы можете сказать «выходные данные 1 для лестничной клетки, что-нибудь еще (включая ничего) [поскольку stderrr игнорируется] для не лестничной клетки».g
никогда не равно 1. Вероятно, вам следует проверить эти решения, прежде чем публиковать их ...