Asli: https://james-iry.blogspot.co.at/2009/05/brief-incomplete-and-mostly-wrong.html
Alain Colmerauer merancang bahasa pemrograman logika Prolog. Tujuannya adalah menciptakan bahasa pemrograman yang sama cerdasnya dengan anak berusia dua tahun. Untuk membuktikan bahwa ia telah berhasil dalam tujuannya, ia mempresentasikan program Prolog yang menjawab "Tidak" secara akal untuk semua pertanyaan.
Tanyakan apapun padaku!
? -(Tentu saja tidak.) Tugas Anda adalah membuat program yang lebih cerdas daripada program Alain Colmerauer. Ini tidak harus dalam Prolog.
Spesifik
Jika input diakhiri dengan
?
dan memiliki paling tidak satu,
, kembalikan teks dari yang terakhir,
hingga yang terakhir?
.Lain, jika input berakhir dengan
?
kembaliNo
.Lain, kembali
Yes
.
Aturan
- Tidak ada celah standar.
- Input / output akan diambil melalui metode input / output standar kami.
- Program Anda harus mengambil setidaknya 1 pertanyaan.
- Anda harus menampilkan pertanyaan yang diproses.
- The
Yes
danNo
's case-sensitive dalam contoh. - Anda dijamin bahwa jika input menyertakan a
?
, input hanya akan memiliki satu?
dan itu akan selalu menjadi karakter terakhir. - Masukan akan selalu berupa frase / kalimat. Ini frase / kalimat tidak hanya akan berisi karakter
,
dan?
, misalnya,
,?
dan,?
tidak input yang valid. (Meskipun pengiriman tetap dapat menerapkannya, karena frasa / kalimat adalah string kosong dalam kasus ini.) - Selain itu, input tidak akan pernah berakhir
,?
. - Jika ada spasi putih segera setelah yang terakhir
,
atau segera sebelum?
, mereka harus dimasukkan dalam output.
Contohnya
Hmm. -> Yes
Alright, -> Yes
Ask me anything! -> Yes
Ask me a question, please! -> Yes
Are you okay? -> No
No? -> No
Hey,does this program work? -> does this program work
Quotes in the following test cases should not be outputted.
They are used as a delimiter here.
Okay, so this does work ? -> " so this does work "
Please, add, a, test, case, containing, multiple, commas? -> " commas"
Mencetak gol
Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
?
, hanya akan ada satu dan akan selalu menjadi karakter terakhir?You are guaranteed that if the input includes a ?, the input will only have one ? and it will always be the last character.
Oleh karena itu, uji kasus ini tidak perlu dilakukan.ends with ,?
input yang valid?Jawaban:
05AB1E ,
2019 byte-1 byte terima kasih kepada @Grimy .
Cobalah secara online atau verifikasi semua kasus uji .
Penjelasan:
Lihat tip tambang 05AB1E ini (bagian Cara menggunakan kamus? ) Untuk memahami mengapa
”€–”
ini"Not"
dan”…Ü
itu"Yes"
.sumber
Python 3 , 62 byte
Cobalah online!
Ekspresi
~(','in s)*('?'in s)
mengevaluasi ke0
(yaitu'Yes'
) jika string tidak mengandung a'?'
, lain-1
(yaitu'No'
) jika string tidak mengandung a','
, dan sebaliknya-2
(yaitu bagian yang dipisahkan koma dari string tidak termasuk karakter terakhir).sumber
JavaScript (ES6),
5352 byteCobalah online!
Berkomentar
sumber
Arang ,
2322 byteCobalah online! Tautan adalah untuk mengucapkan versi kode. Sunting: Disimpan 1 byte berkat @KevinCruijssen. Penjelasan:
Apakah string berisi
?
s?Apakah ini mengandung
,
s?Pisahkan string pada
,
s dan ambil yang terakhir.Hapus
?
dan output hasilnya.Jika tidak ada
,
maka outputNo
.Jika tidak ada
?
maka outputYes
.sumber
Print(Join(Split(Pop(Split(q, ",")), "?"), w)
menjadiPrint(Minus(Pop(Split(q, ",")), "?");
Minus
melakukannya. Selain itu, saya merasa senang dengan diri saya karena menyelamatkan dua pemisah.Perl 5 +
-plF/,|\?/
, 25 byteCobalah online!
sumber
Pyth , 25 byte
Cobalah online!
sumber
Zsh , 51 byte
Cobalah online!
Satu byte dapat disimpan jika
ends with,?
dan yang serupa tidak valid.sumber
Stax , 16 byte
Jalankan dan debug itu
sumber
Retina ,
3228 byte-4 byte dengan tips dari @Neil .
Cobalah online.
Penjelasan:
sumber
K
tahap Retina 1 memiliki kondisi bawaan? Saya tidak melakukannya. Mungkin bisa menghemat beberapa byte.K
dan bersyarat&
untuk sepenuhnya jujur. Saya tahu cara menggunakanK
dengan regex untuk mencocokkan seperti ini , tetapi bagaimana cara menggabungkannya dengan persyaratan untuk meniru ternary jika-selain untukYes
/No
?&
, itu yang mengejutkan saya, dan Anda bisa mencocokkannya dengan string, atau lebih baik lagi, karakter, karena Anda tahu bahwa?
pasti ada di akhir.Formula IBM / Lotus Notes, 79 byte
Tidak ada TIO untuk Formula jadi ...
sumber
Python 3 ,
9887 byte-9 byte terima kasih kepada ElPedro
Cobalah online!
Ini telah dipukuli oleh jawaban lain, tetapi saya mencoba sedikit bermain golf dengan Python. Nasihat dihargai!
sumber
if
pernyataan untuk daftar pengindeksan bukan dan kemudian mempersingkat kondisi penggunaanin
, kemudian melemparkan semuanya karena terlalu dekat dengan sebuah jawaban yang adaif x.count(",")
denganif~x.find(",")
, menghemat satu byte.str.find
mengevaluasi-1
apakah string tidak ditemukan. Jika Anda melengkapi ini dengan operator unary, itu menghasilkan0
jika dan hanya jika substring tidak ada. Atau, Anda dapat menggantinya dengan kurangif","in x
dari 4 byte.PHP , 58 byte
Cobalah online!
sumber
Merah , 78 byte
Cobalah online!
sumber
Perl 6 , 40 byte
Cobalah online!
sumber
Gema , 34 karakter
Contoh dijalankan:
Cobalah online! / Coba semua test case online!
sumber
Japt , 23 byte
Cobalah
sumber
C # (Visual C # Interactive Compiler) , 72 byte
Disimpan 2 byte berkat @someone
Cobalah online!
sumber
SkipLast(1) -> Trim('?')
untuk - ??? byte sejauh yang saya lihat (semua upaya saya untuk menghitung hasil perbedaan dalam angka yang berbeda)Python 2 ,
666362 byteCobalah online!
-3 setelah melihat klarifikasi yang diperbarui "input hanya akan memiliki satu? Dan itu akan selalu menjadi karakter terakhir."
-1 dengan terima kasih kepada @ChasBrown
Pada dasarnya port jawaban Lotus Notes saya . Anehnya, klarifikasi yang disebutkan di atas tidak membantu jawaban Notes karena
@Ends
lebih murah 4 byte daripada@Contains
. Sekarang kalau saja ada@In
fungsi ...sumber
rfind
.Jelly , 20 byte
Cobalah online!
sumber
C ++ (gcc) ,
120118 byteMakro seperti fungsi:
Cobalah online!
-2 byte terima kasih kepada @ceilingcat
sumber