Terinspirasi oleh Apakah awal sama dengan akhir
Diberikan string s
dan integer n
, menampilkan kebenaran / falsey, apakah karakter n
th s
sama dengan n
th dari karakter akhir s
.
Memasukkan
String yang tidak kosong dan integer. Anda dapat menggunakan pengindeksan berbasis 0 atau pengindeksan berbasis 1. Bilangan bulat dijamin valid berdasarkan string. Misalnya, jika string adalah "supercalifragalistic123", integer dapat dari 1 hingga 23 untuk pengindeksan berbasis 1, dan 0 hingga 22 untuk pengindeksan berbasis 0. Harap dicatat bahwa n
bisa lebih besar dari setengah panjangnya s
.
Masukan terbatas pada ASCII yang dapat dicetak.
Keluaran
Nilai kebenaran / kepalsuan didasarkan pada apakah nilai n
th s
sama dengan n
th dari nilai terakhir di s
.
Harap perhatikan bahwa karakter terakhir berada di posisi 0 untuk pengindeksan berbasis 0 dan posisi 1 untuk pengindeksan berbasis 1. Anggap saja membandingkan string dengan terbalik.
Uji Kasus
Diindeks 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-diindeks
"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
sebagai titik kode? (untuk bahasa esoteris seperti brain-flak)Jawaban:
Jelly ,
54 byteCobalah online!
Seharusnya tidak ada jawaban yang lebih pendek di Jelly. Suatu program akan membutuhkan perbandingan, pembalikan / negasi, panggilan indeks, dan byte untuk aliran kontrol (
Ɠ
dalam hal ini), yang menambahkan hingga empat byte.Bagaimana itu bekerja
-1 byte terima kasih kepada @ ais523, menggunakan
Ɠ
sumber
ịµU=
³
, karenaƓ
biayanya satu byte tetapi menjadikannya³
implisit dan sering memberi Anda lebih banyak fleksibilitas aliran kontrol.JavaScript (ES6), 26 byte
Kalau tidak:
Yang ini hampir berhasil, tetapi gagal ketika
n == 0
(karenas.slice(-1,0) == ""
):Solusi 26-byte lain yang ditunjukkan oleh @RickHitchcock :
sumber
~
, tidak akan pernah memiliki itu untuk ini.MATL , 5 byte
Cobalah online!
Penjelasan:
sumber
Oktaf , 22 byte
Cobalah online!
Atau bytecount yang sama:
Cobalah online!
Penjelasan:
Cukup lurus ke depan. Yang pertama mengambil string
s
dan integern
sebagai input dan memeriksa elemens(n)
ke-n terhadap elemen "last-n + 1" untuk kesetaraan.Yang kedua memeriksa elemen
s(n)
ke-n terhadap elemen ke-ns
terbalik.sumber
05AB1E ,
75 byte-2 byte terima kasih kepada Adnan
Cobalah online! atau Coba semua tes
Cobalah online!
sumber
ÂøsèË
menghemat dua byteHaskell, 22 byte
0-basd. Contoh penggunaan:
"letter" # 1
->True
.Cobalah online!
sumber
Alice , 24 byte
Cobalah online!
Input terdiri dari string pada satu baris, dan nomor pada baris kedua. Output adalah
Jabberwocky
jika karakternya sama, dan tidak ada yang sebaliknya.Penjelasan
Program ini sebagian besar dalam mode ordinal, dengan satu perintah dalam mode kardinal. Secara linier, programnya adalah sebagai berikut:
sumber
Python ,
2422 byte-2 byte terima kasih kepada Adnan.
Cobalah online!
sumber
-n-1
dengan~n
.Cubix , 22 byte
1-diindeks, mengambil input sebagai
index
,string
, dipisahkan oleh spasi.Cobalah online
Kubus
Penjelasan
Ini sebagian besar linier. Logika utamanya adalah
Kami kemudian cabang dengan
?
keO
utput1
jika hasilnya adalah 0 dan0
sebaliknya.sumber
Java 8,
4342 byteCoba di sini.
sumber
C #,
2827 byteMenyimpan satu byte berkat @KevinCruijssen.
Kompilasi ke a
Func<string, Func<int, bool>>
.sumber
s.Length-n-1
kes.Length+~n
.CJam , 8 byte
Cobalah online!
Indeks 0-diindeks pergi dulu.
sumber
R 51 byte
Fungsi anonim, menggunakan pengindeksan berbasis 1
sumber
function(s,n)(s=utf8ToInt(s))[n]==rev(s)[n]
Ruby,
222018 bytesumber
->s,n{s[n]==s[~n]}
harus bekerja? (Tidak tahu ruby)Clojure, 27 byte
Wow, ini lebih pendek dari yang saya harapkan.
sumber
APL (Dyalog) ,
105 byteIni adalah fungsi diam-diam, yang perlu diberi nama seperti
f←⊃=⊃∘⌽
, dan kemudian disebut sebagaiint f string
.Terima kasih kepada @ Adám untuk 5 byte kekalahan.
Bagaimana itu bekerja:
Cobalah online!
Jawaban 22 byte telah diedit. Jika Anda ingin melihatnya, periksa riwayat revisi.
sumber
1
sebagai argumen kiri default. Cobalah online! Fungsi tidak menganggap apa pun; mereka diterapkan secara dua arah karena mereka diberikan argumen kiri dan kanan.⊃
mengambil elemen pertama dari argumen? Bagaimanapun, saya akan mengedit untuk mengklarifikasi.V ,
26, 16, 13 byteCobalah online!
Hexdump:
1 diindeks.
Penjelasan:
Untuk referensi, jawaban asli saya adalah:
Cobalah online!(0 diindeks)
Hexdump:
sumber
Àñx$x|ñ
terasa seperti terlalu banyak karakter. Saya mencoba regex saja, tetapi akhirnya menjadi seperti 24 lama!Mathematica, 34 Bytes
sumber
StringTake[#, #2]
mengambil karakter pertama#2
dari#
.StringPart
akan bekerja dengan baik dalam hal ini.#~(s=StringPart)~-#2==s@##&
#~s~{#2}==#~s~{#2}&
akan selalu menghasilkanTrue
...List
dariString
s sebagai masukan, sehingga#[[#2]]==#[[-#2]]&
akan cukupPerl 6 , 27 byte
Menguji
sumber
PHP> = 7.1, 36 Bytes
Versi Online
sumber
~+$p
menghemat satu byte.Pyth ,
87 byteDengan input terbalik: pertama indeks, lalu string. Diindeks 0.
Penjelasan:
Cobalah online!
sumber
Lua, 46 byte
Cobalah online!
sumber
s
, dan Anda perlu meng-output-nya jugaJ, 6 byte
-4 byte terima kasih kepada FrownyFrog
Lihat penjelasan jawaban asli - idenya cukup mirip, tetapi ini dilakukan dengan kait diad yang kata kerja kanannya sendiri merupakan kait monadik.
Cobalah online!
jawaban asli (10 byte)
,:|.
arg kanan di atas arg kanan terbalik=/
Apakah mereka secara elementer sama?{
ambil dari daftar boolean indeks yang ditunjukkan oleh arg kiriCobalah online!
sumber
C,
3635 byteMenggunakan pengindeksan berbasis 0, secara alami.
Cobalah online!
sumber
-1-n
bisa+~n
.Japt ,
10 98 byteCobalah online!
sumber
QBIC , 18 byte
Penjelasan
sumber
CJam, 11 byte
Buruk. Manipulasi tumpukan terlalu banyak.
sumber
> <> (dengan juru bahasa ini ), 25 byte
Ini tidak berfungsi di TIO: juru bahasa TIO tidak membalik tumpukan baru ketika melakukan
[
instruksi, tetapi taman bermain ikan tidak - bandingkan"abcde"5[ooooo;
berjalan di sini dan di sini , misalnya.Input string diambil dari STDIN, dan kami menganggap n sudah ada di stack. Menggunakan pengindeksan 1.
Ikan mendapat n th karakter dengan
[:}]&
yang sifon off pertama n hal-hal di stack menjadi baru, tumpukan terbalik, memanipulasi yang sedikit, kemudian menempatkan sesuatu kembali dan menyimpan n karakter th dalam register. Kemudian membalik seluruh tumpukan dan melakukan hal yang sama lagi, dan mengembalikan 1 jika kedua karakter sama, dan 0 sebaliknya.Ini tampaknya bekerja di TIO , selama 26 byte:
sumber
C, 73 byte
Kompilasi apa adanya dengan GCC 6.3.1 (tanpa bendera). Beberapa kebingungan yang tidak perlu termasuk.
Pemakaian
Kebenaran = tidak ada, falsey = sampah.
sumber
Lua , 35 byte
Menggunakan pengindeksan 1.
Cobalah online!
sumber