Berdasarkan daftar angka dan huruf ekivalennya, ambil input string, ganti karakter string tersebut dengan angka / huruf yang sama dan hasilkan hasilnya.
Daftar
- 1 = a
- 2 = b
- 3 = c
- 4 = d
- 5 = e
- 6 = f
- 7 = g
- 8 = h
- 9 = i
- 0 = j
Memasukkan
thisisastring1124
Keluaran
t89s9s1str9n7aabd
Aturan
- Angka setara dengan huruf kecil saja.
- Karakter apa pun di luar daftar akan dibiarkan apa adanya.
- String input tidak boleh mengandung spasi.
- Program atau fungsi lengkap diizinkan.
- Karena ini kode-golf, byte paling sedikit menang.
Jawaban:
bash, 18 byte
Cobalah online!
sumber
Python 3 ,
7668 byteCobalah online!
sumber
Perl 5 , 17 byte
Cobalah online!
sumber
05AB1E ,
139 byteCobalah online!
Penjelasan
sumber
Perl 6 ,
4523 byteCobalah online!
Hanya regex transliterasi biasa.
sumber
TR/1..90a..j/a..j1..90/
tio.run/##K0gtyjH7n1upoJamYKvwvzokSN9QT8/SIFFPL0sfRIB5@rX/…Retina 0.8.2 , 12 byte
Cobalah online! Penjelasan:
Lakukan transliterasi.
Daftar sumber adalah surat-surat
a-j
, lalu0
, kemudian digit9-1
.Daftar tujuan adalah daftar sumber yang dibalik, yaitu digit
1-9
, lalu0
, kemudian hurufj-a
.sumber
J , 38 byte
Cobalah online!
sumber
Python 2 ,
8278 byteCobalah online!
-4 dengan terima kasih kepada @ovs
sumber
JavaScript (ES6), 66 byte
Cobalah online!
sumber
R , 40 byte
Cobalah online!
Anehnya, R layak pada tantangan string semacam ini , karena memiliki
tr
fungsi seperti pada jawaban Bash . Tidak tahu mengapa itu ada, tapi saya bersyukur karenanya!sumber
MS-SQL, 71 byte
Fungsi SQL 2017 baru
TRANSLATE
melakukan penggantian karakter individu, sehingga sangat cocok untuk tujuan ini. Lihat jawaban saya yang serupa di tantangan sebelumnya .Input adalah melalui tabel t yang sudah ada sebelumnya dengan kolom varchar v , sesuai aturan IO kami . Untuk mengganti hanya huruf kecil, tabel harus dibuat menggunakan susunan case-sensitive :
sumber
Jelly , 16 byte
Cobalah online!
sumber
Pyth , 13 byte
Coba di sini!
Penjelasan
sumber
Haskell ,
8066 byteCobalah online!
sumber
REXX, 57 byte
sumber
C (gcc) ,
8172 byteTerima kasih kepada Giacomo Garabello untuk sarannya.
Cobalah online!
sumber
putchar(...)
->*s=...
dan 4 lainnya dengan mengganti*s-48U<11
dengan*s<59
Coba online!*s<59
pecah jika karakter seperti$
ada di input, itulah sebabnya saya melakukannya*s-48U
([0..47] menjadi [-48 ..- 1], yang menjadi nilai tanpa tanda yang besar.) Karena pertanyaan tidak menentukan apakah tidak -Num yang valid, saya pergi dengan interpretasi yang lebih konservatif.Powershell, 94 byte
Skrip uji:
Penjelasan
$args
- string argumen$args|% t*y
- Perluas yang|ForEach-Object -Method ToCharArray
setara dengan"$args".ToCharArray()
($s='1a2b3c4d5e6f7g8h9i0j').IndexOf($_)
- temukan char di string, kembalikan posisi atau -1 jika tidak ditemukan. Biarkan $ s menyimpan string yang berisi char berpasangan pada posisi tetangga yang berbeda dengan bit terakhir: 0 + 1, 2 + 3, 4 + 5 ....if(1+($p=...))
- jika posisi ditemukan$p-bxor1
- posisi bit xor 1sumber
-bxor1
.R , 107 byte
Cobalah online!
Upaya pertama, pasti dapat ditingkatkan ...
sumber
chartr
adalah temanmu di sini, kurasa.Karat , 96 byte
Cobalah online!
Bukan Unicode-safe, jika itu akan lebih lama.
sumber
K4 , 38 byte
Larutan:
Penjelasan:
Cari setiap karakter dalam daftar
"abcdefghij1234567890"
dan kemudian indeks ke dalam daftar di"1234567890abcdefghijX"
manaX
karakter aslinya.Perlu menemukan cara yang lebih singkat untuk membangun string ...
Bonus:
Solusi lain untuk 38 byte :
sumber
Yabasic , 135 byte
Membawa input dari konsol dan output ke konsol.
Cobalah online!
sumber
Japt ,
4442 byteCobalah online!
sumber
sed, 44 byte
Agak membosankan, saya akui.
Pengujian:
sumber