Dalam bahasa pemrograman C , ada formasi yang disebut digraf dan trigraph yang merupakan urutan dua dan tiga karakter yang dievaluasi menjadi karakter yang kurang umum. Misalnya, Anda dapat menggunakan ??-
jika keyboard Anda tidak punya ~
.
Teks yang diberikan, ganti semua instance dari digraf dan trigraph berikut (sisi kiri) dengan karakter yang benar, lebih pendek, golf (sisi kanan).
??= #
??/ \
??' ^
??( [
??) ]
??! |
??< {
??> }
??- ~
<: [
:> ]
<% {
%> }
%: #
Memasukkan
Input adalah teks ASCII. Membuntuti baris baru diizinkan. Tidak perlu kode C yang valid.
Keluaran
Keluaran adalah teks yang sama, dengan semua contoh digraph dan trigraph di atas diganti dengan versi singkat, dievaluasi dari kiri ke kanan. Membuntuti baris baru diizinkan. Tidak perlu kode C yang valid.
Uji Kasus
=>
memisahkan input dan output.
if (true ??!??! false) { => if (true || false) {
??-arr.indexOf(n) => ~arr.indexOf(n)
function f(??) { console.log('test??'); } => function f(] { console.log('test^); }
/* comment :> :) *??/ => /* comment ] :) *\
%:What am I doing??!!??` => `#What am I doing|!??
??(??)??(??) <:-- not a palindrome => [][] [-- not a palindrome
?????????? => ??????????
int f(int??(??) a) ??< return a??(0??)??'a??(1??) + "??/n"; ??> => int f(int[] a) { return a[0]^a[1] + "\n"; }
??<:>??<% => {]{%
<:> => [>
<::> => []
:>> => ]>
#\^[]|{}~ => #\^[]|{}~
: > => : >
??=%: => ##
"??=%:"
adalah kasus uji lain yang relevan: di C, ini berarti di"#%:"
mana%:
tidak istimewa, tapi saya pikir output yang Anda harapkan"##"
.Jawaban:
Retina , 65 byte
Cobalah online!
T
sedikit canggung untuk digunakan tetapi masih menyelamatkan saya 14 byte.sumber
\?\?[^:%]
?\?\?[^:%?]
agak)??a
menjadia
.%>
bukan>%
.C,
206205 byte(-1 terima kasih kepada ceilingcat)
Baris baru hanya di sini untuk dibaca.
Dimodifikasi
s
di tempat. Diuji dengan GCC dan dentang pada Fedora Workstation, x86, dalam mode 32-bit dan 64-bit.C bukan bahasa terbaik untuk bermain golf di sini.
sumber
C is not exactly the best language for golfing here.
tidak bercanda. Kelihatannya bagus :) Kalau dipikir-pikir, saya seharusnya memaksakan semua pertanyaan untuk menambahkan +1 atau +2 byte jika mereka menggunakan salah satu karakter yang membuat xD digraf atau trigraphJavaScript (ES6), 106 byte
Bagaimana?
Ini sangat mudah.
Namun kita harus perhatikan bahwa:
Kapan saya kurang dari 9 , ekspresi
'<:<%%'[i-9] + ':>%>:'[i-9]
mengevaluasiundefined + undefined
yang sama denganNaN
(falsy seperti yang diharapkan).Kapan saya lebih besar dari atau sama dengan 9 , ekspresi
'??' + "=/'()!<>-"[i]
mengevaluasi"??" + undefined
yang dipaksakan ke string"??undefined"
(benar ketika kita mengharapkan hasil palsu).Itu sebabnya kita harus memproses tes dalam urutan ini.
Uji kasus
Tampilkan cuplikan kode
sumber
Rubi , 104 + 1 = 105 byte
Menggunakan
-p
bendera untuk +1 byte.Cobalah online!
sumber
Javascript (ES6),
131123 bytesumber
PHP, 112 Bytes
Cobalah online!
PHP, 115 Bytes
Cobalah online!
PHP, 124 Bytes
Solusi Regex
Cobalah online!
sumber
JavaScript (ES6), 113 byte
Bukan yang terpendek, tetapi saya ingin mencoba pendekatan yang berbeda.
sumber