Tantangan
Tulis fungsi atau program yang mengambil string yang terdiri dari satu atau lebih kata ganti orang subjektif , dipisahkan oleh tanda + , sebagai argumen. Keluaran harus berupa kata ganti tunggal, yaitu hasil dari relasi yang didefinisikan dalam paragraf berikutnya.
Tentu saja, silakan edit karena Anda ingin memperbaiki kesalahan tata bahasa yang pasti ada;)
Ini adalah tantangan kode-golf, sehingga kode terpendek menang.
Hubungan itu
Tujuan dari tugas ini adalah menerjemahkan dalam "matematika-berbicara" sesuatu yang kita gunakan setiap hari. Bagaimana kita berpikir tentang "Kamu dan aku"? Ya, "Kita", bukan? Jadi, jika inputnya adalah You+I
output harus berupa string We
. Dengan lebih dari dua kata ganti, akan terlihat seperti:
You+He+They
->You
Relasi didefinisikan sebagai tabel ini:
I You He We You They
I I We We We We We
You You You We You You
He He We You They
We We We We
You You You
They They
Masalah 'Kamu'
Seperti yang Anda lihat, saya bukan penutur bahasa Inggris asli. Dalam bahasa saya (Italia) ada perbedaan antara bentuk jamak Anda ( voi , dalam bahasa Italia) dan bentuk tunggal Anda ( tu ). Ketika saya memikirkan tantangan ini, saya tidak berpikir dalam bahasa Inggris, jadi ada masalah yang tidak mungkin dikenali jika saya menggunakan bentuk jamak atau tunggal. Untungnya (atau jelas?), Input / output tidak berubah di kedua bentuk, sehingga Anda dapat menggunakan salah satu dari mereka dan Anda akan membahas kedua kasus!
Tentang input
Masukan akan selalu dalam bentuk "Pronoun + Pronoun + Pronoun" ... kata ganti akan memiliki huruf pertama dalam huruf besar dan sisanya dalam huruf kecil. Plus tidak akan dikelilingi oleh spasi, hanya dengan kata ganti. Input kosong dimungkinkan dan hasilnya harus berupa output kosong.
Bonus
Sedikit bonus 15% jika program akan mengelola dua kata ganti baru: She and It . Mereka sama dengan Dia, jelas. Ingatlah bahwa relasi ini refleksif, jadi Dia -> Dia dan Itu -> Itu. Oleh karena itu, kombinasi apa pun yang hanya mencakup Dia, Dia atau Itu harus menghasilkan Mereka.
Contohnya
You+I -> We
You+He+They -> You
I+You+He+They -> We
They -> They
They+You -> You
You+You+I+You -> We
For Bonus
She -> She
She+He -> They
I+It+He -> We
It+You -> You
sumber
I+I=I
", karena hanya ada satu "I
" dari pembicara yang diberikan. Tapi tidak bisakah "He+He=They
"? Umumnya jika Anda mengatakan "He
" dua kali dalam konstruksi ini, Anda merujuk pada dua subjek pria yang berbeda , bukan yang sama dua kali.Jawaban:
Retina,
62 61 56 5352 byteGolf lebih lanjut dan penjelasan datang kemudian.
4 langkah substitusi melakukan hal berikut:
Cobalah online di sini.
3 byte disimpan berkat Martin Büttner.
sumber
.
sebagai ganti\+
, karena hanya karakter itulah yang diperbolehkan di depan huruf kapital atau setelahnyaI
.JavaScript (ES6), 130 byte
Penjelasan
Uji
Tampilkan cuplikan kode
sumber
Perl 5, 67 byte
79 byte sebenarnya, tapi ada bonus 15%.
sumber
Python
159153 byteEDIT : Terima kasih @ Pietu1998
Ini adalah terjemahan langsung dari jawaban Javascript ES6:
Coba di sini
sumber
s
tidak perlu menjadi variabel, dan Anda dapat menghapus garis & ruang ekstra antarafor
danr=
garis. Juga, Anda mungkin ingin memeriksa apakah ini bisa lebih pendek sebagai suatu fungsi.Ruby,
150136131119111 byteFitur bonus: menangani banyak ekspresi pada baris perintah yang sama.
sumber