Kita semua pernah melakukannya, yah, mungkin tidak, tetapi membuat bahasa asing Anda sendiri dan sistem penomoran adalah pokok dari penulisan fantasi, tetapi sebagian besar hanya kegiatan yang menyenangkan.
Tugasnya sederhana, ambil dua input:
Input daftar yang diurutkan terdiri dari 10 [sepuluh] 'angka' unik (setiap karakter ASCII yang dapat dicetak) dan menafsirkannya, secara berurutan, sebagai nilai 0, 1, 2, 3, ..., 9
+ Ada pengecualian untuk apa yang bisa menjadi angka di sini. Operator aritmatika (+, -, *, /), Tanda kurung, dan spasi tidak dapat digunakan sebagai salah satu angka.
Masalah aritmatika hanya menggunakan 'angka'
Dan output hasil bilangan bulat setara dalam bentuk yang diberikan.
Ini sebuah contoh:
INPUT
abcdefghij
bcd + efg + hij
OUTPUT
bdgi
Dalam contoh, daftar input (Anda dapat memilih bentuk daftar) dari 'abcdefghij' yang sesuai dengan '0123456789' seperti 'hjkloiwdfp' juga akan sesuai 1 dengan 1 dengan '0123456789' di mana alih-alih 'a' yang dikaitkan dengan nol, 'h' tidak. Berikut aritmatika 'diterjemahkan' ke 123 + 456 + 789, yang sama dengan 1368. Ini kemudian harus dikeluarkan dalam bentuk yang kami berikan, jadi b (yang mewakili 1) d (untuk 2) g (untuk 6) dan i (untuk 8).
KASUS UJI
abcdefghij
abc + def - ghij
-gedc
qwertyuiop
qwerty / uiop
e
%y83l;[=9|
(83l * 9) + 8%
y9|8
LEBIH BANYAK ATURAN
- Lubang Standar dilarang!
- Ini kode golf, jadi jawaban tersingkat dalam byte menang.
- Harus berupa program atau fungsi lengkap yang mengambil input dan output dalam format apa pun yang paling cocok untuk Anda. (Tidak bisa menambahkan informasi tambahan dalam input, cukup 'angka' dan ekspresi.
- Gunakan bahasa apa pun yang Anda suka (asalkan sesuai dengan aturan lain)
1
untuk 5/3
, bukan 2
, karena pembagian bilangan bulat (bukan pembulatan). Ini tidak membatalkan tantangan, tetapi Anda mungkin harus mengizinkan jawaban yang berbeda untuk kasus uji yang sama (lihat jawaban T-SQL saya di bawah).
q.ioiopewioyetqorw...
. Jika demikian, pembulatan seperti apa yang harus diterapkan?