Вдохновлен ли начало равно концу
Если задана строка s
и целое число n
, выведите truey / falsey, чтобы узнать, равен ли n
th char из s
числа n
th из конца char в s
.
вход
Непустая строка и целое число. Вы можете использовать индексирование на основе 0 или индексирование на основе 1. Целое число гарантированно будет действительным на основе строки. Например, если строка "supercalifragalistic123", целое число может быть от 1 до 23 для индексации на основе 1 и от 0 до 22 для индексации на основе 0. Обратите внимание, что n
может быть больше, чем половина длины s
.
Ввод ограничен для печати ASCII.
Выход
Значение true / falsey, основанное на том, равно ли n
значение th в значении th из последнего значения в .s
n
s
Обратите внимание, что последний символ находится в позиции 0 для индексации на основе 0 и позиции 1 для индексации на основе 1. Думайте об этом как о сравнении строки с ее обратной стороной.
Тестовые случаи
0 индексированные
"1", 0 Truthy 1 == 1
"abc", 1 Truthy b == b
"aaaaaaa", 3 Truthy a == a
"[][]", 1 Falsey ] != [
"[][]", 0 Falsey [ != ]
"ppqqpq", 2 Truthy q == q
"ababab", 5 Falsey a != b
"12345", 0 Falsey 1 != 5
"letter", 1 Truthy e == e
"zxywv", 3 Falsey w != x
1-индексированных
"1", 1 Truthy 1 == 1
"abc", 2 Truthy b == b
"aaaaaaa", 4 Truthy a == a
"[][]", 2 Falsey ] != [
"[][]", 1 Falsey [ != ]
"ppqqpq", 3 Truthy q == q
"ababab", 6 Falsey a != b
"12345", 1 Falsey 1 != 5
"letter", 2 Truthy e == e
"zxywv", 4 Falsey w != x
n
в качестве кодовой точки? (для эзотерических языков, таких как мозговыеОтветы:
Желе ,
54 байтаПопробуйте онлайн!
В Желе не должно быть более коротких ответов. Программе потребовалось бы сравнение, обращение / отрицание, индексный вызов и байт для потока управления (
Ɠ
в данном случае), который добавляет до четырех байтов.Как это работает
-1 байт благодаря @ ais523, используя
Ɠ
источник
ịµU=
³
, поскольку онƓ
стоит один байт, но делает его³
неявным и часто дает вам большую гибкость потока управления.JavaScript (ES6), 26 байт
В качестве альтернативы:
Этот почти работает, но терпит неудачу, когда
n == 0
(потому чтоs.slice(-1,0) == ""
):Еще одно 26-байтовое решение, на которое указал @RickHitchcock :
источник
~
, никогда бы не подумал об этом.MATL , 5 байтов
Попробуйте онлайн!
Объяснение:
источник
Октава , 22 байта
Попробуйте онлайн!
Или тот же bytecount:
Попробуйте онлайн!
Объяснение:
Это довольно просто. Первый принимает строку
s
и целое число вn
качестве входных данных и проверяет n-й элементs(n)
на соответствие элементу «last-n + 1» на равенство.Второй проверяет n-й элемент
s(n)
против n-го элемента вs
обратном порядке.источник
05AB1E ,
75 байтов-2 байта благодаря Аднану
Попробуйте онлайн! или попробуйте все тесты
Попробуйте онлайн!
источник
ÂøsèË
сохраняет два байтаHaskell, 22 байта
0-BASD. Пример использования:
"letter" # 1
->True
.Попробуйте онлайн!
источник
Алиса , 24 байта
Попробуйте онлайн!
Входные данные состоят из строки в одной строке и числа во второй строке. Вывод,
Jabberwocky
если символы одинаковые, и ничего другого.объяснение
Эта программа в основном в порядковом режиме, с одной командой в кардинальном режиме. Линеаризованная программа выглядит следующим образом:
источник
Python ,
2422 байта-2 байта благодаря Аднану.
Попробуйте онлайн!
источник
-n-1
на~n
.Cubix , 22 байта
1-индексированный, принимает входной сигнал , как
index
,string
, разделенный пробел.Попробуйте онлайн
Cubified
объяснение
Это в основном линейно. Основная логика
Затем мы переходим
?
кO
utput,1
если результат равен 0, и в0
противном случае.источник
Java 8,
4342 байтаПопробуй это здесь.
источник
C #,
2827 байтСохраненный байт благодаря @KevinCruijssen.
Компилирует в
Func<string, Func<int, bool>>
.источник
s.Length-n-1
наs.Length+~n
.CJam , 8 байт
Попробуйте онлайн!
Индекс с индексом 0 идет первым.
источник
R 51 байт
Анонимная функция, использует индексирование на основе 1
источник
function(s,n)(s=utf8ToInt(s))[n]==rev(s)[n]
Рубин,
222018 байтисточник
->s,n{s[n]==s[~n]}
должно работать? (Понятия не имею о рубине)Clojure, 27 байт
Вау, это было короче, чем я ожидал.
источник
APL (Dyalog) ,
105 байтовЭто неявная функция, которой необходимо присвоить имя, например
f←⊃=⊃∘⌽
, и затем вызвать какint f string
.Спасибо @ Adám за колоссальные 5 байтов.
Как это работает:
Попробуйте онлайн!
22-байтовый ответ был отредактирован. Если вы хотите увидеть его, проверьте историю изменений.
источник
1
качестве левого аргумента по умолчанию. Попробуйте онлайн! Функции ничего не предполагают; их применяют двоично, потому что им дают как левый, так и правый аргумент.⊃
принимает первый элемент аргумента? Во всяком случае, я буду редактировать, чтобы уточнить.V ,
26, 16, 13 байтовПопробуйте онлайн!
HexDump:
1 проиндексировано.
Объяснение:
Для справки, мой оригинальный ответ был:
Попробуйте онлайн! (0 проиндексировано)
HexDump:
источник
Àñx$x|ñ
чувствует себя как слишком много персонажей. Я пробовал только регулярное выражение, но в итоге получилось около 24!Mathematica, 34 байта
источник
StringTake[#, #2]
занимает первые#2
символы#
.StringPart
будет хорошо работать в этом случае.#~(s=StringPart)~-#2==s@##&
#~s~{#2}==#~s~{#2}&
всегда будет уступатьTrue
...List
изString
с в качестве входных данных, поэтому#[[#2]]==#[[-#2]]&
будет достаточноPerl 6 , 27 байт
Попробуй это
источник
PHP> = 7.1, 36 байт
Онлайн версия
источник
~+$p
сохраняет один байт.Pyth ,
87 байтовПри обратном вводе: сначала индекс, затем строка. Это 0-проиндексировано.
Пояснения:
Попробуйте онлайн!
источник
Lua, 46 байт
Попробуйте онлайн!
источник
s
J, 6 байт
-4 байта благодаря FrownyFrog
См. Оригинальное объяснение ответа - идея достаточно похожа, но это достигается с помощью диадического хука, правый глагол которого сам по себе является монадическим.
Попробуйте онлайн!
оригинальный ответ (10 байт)
,:|.
правый аргумент сверху правого обратного аргумента=/
они поэлементно равны?{
взять из этого логического списка индекс, указанный левым аргументомПопробуйте онлайн!
источник
C,
3635 байтовЕстественно, использует индексирование на основе 0.
Попробуйте онлайн!
источник
-1-n
может быть+~n
.Japt ,
10 98 байтПопробуйте онлайн!
источник
QBIC , 18 байт
объяснение
источник
CJam, 11 байт
Плохо. Слишком много стековых манипуляций.
источник
> <> (с этим интерпретатором), 25 байтов
Это не работает в TIO: интерпретатор TIO не переворачивает новый стек при выполнении
[
инструкции, но игровая площадка работает - сравните"abcde"5[ooooo;
бег здесь и здесь , например, .Ввод строки берется из STDIN, и мы предполагаем, что n уже находится в стеке. Использует 1-индексацию.
Рыба получает n- й символ
[:}]&
, который откачивает первые n вещей в стеке в новый, перевернутый стек, немного манипулирует этим, затем возвращает вещи обратно и сохраняет n й символ в регистре. Затем он переворачивает весь стек и делает то же самое снова, и возвращает 1, если два символа равны, и 0 в противном случае.Это похоже на работу в TIO , для 26 байтов:
источник
C 73 байта
Компилируется как есть с GCC 6.3.1 (без флагов). Некоторая ненужная запутанность включена.
использование
Правда = ничего, фальси = мусор.
источник
Луа , 35 байт
Использует 1-индексацию.
Попробуйте онлайн!
источник