(в значительной степени вдохновлен элементом строки по указанному индексу )
При наличии строки s
и целого числа, n
представляющего индекс in s
, вывод s
с n
удаленным символом в -ой позиции.
0-индексация и 1-индексация разрешены.
- Для индексации 0
n
будет неотрицательным и меньше, чем длинаs
. - Для 1-индексации
n
будет положительным и меньше или равно длинеs
.
s
будет состоять только из печатных символов ASCII ( \x20-\x7E
или
сквозных ~
).
Любой разумный ввод / вывод разрешен. Применяются стандартные лазейки .
Тестовые случаи (0-indexed):
n s output
0 "abcde" "bcde"
1 "abcde" "acde"
2 "a != b" "a = b"
3 "+-*/" "+-*"
4 "1234.5" "12345"
3 "314151" "31451"
Тестовые случаи (1-индексированные):
n s output
1 "abcde" "bcde"
2 "abcde" "acde"
3 "a != b" "a = b"
4 "+-*/" "+-*"
5 "1234.5" "12345"
4 "314151" "31451"
Это код-гольф , поэтому выигрывает самый короткий ответ в байтах.
3
,314151
->31451
. Я бы предположил, что нет.Ответы:
C #,
2019 байтисточник
Алиса ,
1312 байтСпасибо Лео за сохранение 1 байта.
Попробуйте онлайн!
Первая строка ввода - это строка, вторая строка - индекс на основе 0.
объяснение
источник
Japt , 2 байта
Попробуйте онлайн!
источник
K (Kona), 1 байт
Должен любить встроенных. Индексирование на основе 0. Использование:
источник
Haskell ,
2824 байта-4 байта благодаря Laikoni, эта версия 1-проиндексирована.
Старый ответ:
Простая рекурсивная функция, которая принимает значение, она 0-проиндексирована.
Мой первый раз игра в гольф, так что, возможно, это не оптимальное решение. Ну что ж.
источник
Mathematica, 18 байт
1-индексированных
вход
спасибо Мартин Эндер
источник
["abcde", {1}]
в этом случаеStringDrop
только в этом случае . Что вы думаете? (Вы можете явно упомянуть, что он тоже 1-индексированный.) Я всегда рад видеть людей, публикующих ответы Mathematica :)V , 3 байта
Попробуйте онлайн!
Это использует 1-индексирование.
источник
CJam , 4 байта
Попробуйте онлайн!
объяснение
источник
GCC c функцией, 25
Индексирование на основе 1.
Здесь много неопределенного поведения, так что следите за случайными велоцирапторами :
strcpy()
man говорит, что если копирование происходит между объектами, которые перекрываются, поведение не определено . Здесь явно есть совпадение строк src и dest , но, похоже, это работает, поэтому либо glibc более осторожен, либо мне повезло.s+=n
происходит доs-1
. Стандарт c не дает таких гарантий и фактически называет это неопределенным поведением. Опять же, похоже, что он работает как требуется с компилятором gcc в Linux x86_64.Попробуйте онлайн .
источник
strcpy
аргументы должны передаваться в порядке справа налево, что объясняет поведение, но вы сказали, что используете те,x86_64
которые используют регистры ... возможно, компилятор решил поиграть сгенерировал код и решил, что сначала вычислить s + = n!MATL , 3 байта
Использует индексирование на основе 1.
Попробуйте онлайн! Или проверьте все тестовые случаи .
объяснение
В модифицированной версии со всеми тестовыми примерами код находится в бесконечном цикле,
`...T
пока не будет найден ввод. В конце каждой итерацииXD
явно вызывается функция display ( ), и стек очищается (x
), чтобы подготовить его к следующей итерации.источник
Vim, 7 байт
Как это работает:
Это ожидает две линии; один со строкой и один с номером.
источник
jD@"gox
Java 8, 39 байт
Попробуй это здесь.
Java 7, 67 байт
Попробуй это здесь.
источник
s->n->new StringBuilder(s).deleteCharAt(n)+"";
хотя это длиннее.StringBuffer
вместоStringBuilder
Codegolf. ;)Рубин , 16 байт
Попробуйте онлайн!
источник
Haskell , 15 байт
Для этого требуется недавно выпущенный GHC 8.4.1 (или выше). В настоящее время
<>
, как функция на полугруппах, находится в Prelude. Это особенно полезно на функции полугруппыПопробуйте онлайн!
Поскольку tio использует более старую версию GHC, я импортировал
<>
в шапку .источник
R, 40 байт
Просто покажу множество способов, ни один из которых не особенно компактен, вы можете возиться со строками в R.
источник
05AB1E , 5 байтов
Попробуйте онлайн!
источник
05AB1E , 6 байтов
Попробуйте онлайн!
объяснение
источник
Pyth, 3 байта
Попробуй это здесь.
Принимает индекс первым.
источник
PHP, 42 байта
0 проиндексировано
Попробуйте онлайн!
источник
JS (ES6),
413231 байтНа основании этого . Принимает ввод с помощью карри, первый - строка, второй - индекс.
-9 благодаря @JohanKarlsson
-1 благодаря @ETHproductions
источник
Желе , 3 байта
Полная программа, принимающая индекс (на основе 1) и строку (в указанном порядке) и печатающая результат.
Как двоичная функция возвращает список двух частей.
Фактически индекс может быть списком из n индексов, и в этом случае он возвращает список из n-1 частей.
Попробуйте онлайн! или посмотрите набор тестов .
Как?
В качестве примера использования нескольких индексов:
источник
vim,
107Принимает 1-индексированный ввод в следующем формате:
Спасибо @DJMcMayhem за 3 байта!
источник
Java 8,
4541 байтСохранено 4 байта благодаря @ OlivierGrégoire
Мой первый ответ на кодовый гольф в чем-то отличном от C #, даже если он еще не самый короткий для Java.
источник
;
в лямбде (-1 байт). 2. На мой взгляд, вам не нужно возвращатьString
. Я думаю, что возвратStringBuffer
без+""
будет вполне допустимым (-3 байта). Пример?BigInteger
является представлением неограниченногоint
, в этом случаеStringBuffer
/StringBuilder
являются представлениями изменяемогоString
s.Python 3 , 24 байта
Попробуйте онлайн!
источник
JavaScript (ES6),
393433 байта56 байтов сэкономлено благодаря Арно .источник
мозговой трах , 14 байтов
Попробуйте онлайн!
Читает нулевой однобайтовый индекс, за которым сразу следует строка.
источник
Befunge-98 ,
352725 байт-4 байта благодаря @ eush77
Попробуйте онлайн!
1-индексированный, обратите внимание, что вход имеет завершающий нулевой байт.
источник
PHP, 41 байт, 35 байт без учета? Php
0 индексированные
TIO
источник
[$argv[2]]
индекс неявно создает диапазон? Кроме того, IIRC вы можете<?php
отключить, потому что интерпретатор PHP имеет режим, который ему не нужен, и потому что мы обычно не наказываем за такого рода указание в файле того, что это за язык.Japt ,
32 байтаПопробуйте онлайн!
источник
1
R,
4847 байт(1 байт сохранен за счет использования
el()
благодаря Giuseppe)Разбейте строку на отдельные символы, удалите n и снова объедините.
Возможно, есть лучшее решение, strsplit () довольно громоздкий, так как возвращает список.
источник
pryr::f([function body])
экономит несколько байт, а использованиеel(strsplit(s,""))
сохраняет байт, но по какой-то причине не работает на TIO.install.packages("pryr")
но, может быть, я слишком драгоценен!function(s,n)intToUtf8(utf8ToInt(s)[-n])
для 40 байтов.function(s,n)sub(sub(0,n,"(.{0})."),"\\1",s)
для 44.