Kasus Penasaran Steve Ballmer


46

Steve Ballmer adalah mantan CEO Microsoft, dan dalam sebuah artikel baru - baru ini , mengklaim bahwa dia "masih tidak tahu apa yang dia lakukan salah dengan ponsel".

Seperti buletin CodeProject menunjukkan, "Judul artikel itu dapat berakhir di banyak tempat dan masih akurat".

Diberikan tanpa input, output sebagai berikut:

Steve Ballmer still does not know.
Steve Ballmer still does not know what he did.
Steve Ballmer still does not know what he did wrong.
Steve Ballmer still does not know what he did wrong with mobile.

Ini harus dikeluarkan persis seperti yang ditunjukkan, dan harus menjadi satu-satunya output dari program Anda. Anda dapat memasukkan satu baris baru.

Ini adalah sehingga byte paling sedikit di setiap bahasa menang


59
Ketika saya melihat judul / tag saya berpikir bahwa hasilnya akandevelopers developers ...
Rod

15
tcl, 25 - while 1 {puts developers}- demo
sergiol

8
braingolf, 23 - 1"developers "[!@11 1>]: P
Skidsdev

16
Dan saya memikirkan Ballmer Peak
ojdo

5
ya, 14 -yes developers
sergiol

Jawaban:


26

Python 3 , 100 99 99 97 byte

-1 byte terima kasih kepada ovs
-1 byte terima kasih kepada Jonathan Allan
-1 byte terima kasih kepada Dennis

for i in b'!-3?':print('Steve Ballmer still does not know what he did wrong with mobile'[:i]+'.')

Cobalah online!


17

Haskell, 96 byte

(++".\n")=<<scanl(++)"Steve Ballmer still does not know"[" what he did"," wrong"," with mobile"]

Cobalah online!

scanlseperti foldl(atau dikurangi sebagaimana disebut dalam bahasa lain) kecuali ia mengembalikan daftar semua hasil antara dan bukan hanya yang terakhir. Setiap hasil antara ditambahkan dengan ".\n"dan semuanya disatukan menjadi string tunggal.


17

05AB1E , 50 49 45 44 byte

4 byte disimpan dengan inspirasi dari jawaban Java Kevin

„€Ž†©'–Ñ…€À€½ƒ§“mer„â‚à€–ƒ€“”™¸ïß”[Žì'.«=¨ð«

Cobalah online!

Penjelasan

„€Ž†©                                         # push "with mobile"
     '–Ñ                                      # push "wrong"
        …€À€½ƒ§                               # push "what he did"
               “mer„â‚à€–ƒ€“                  # push "mer still does not know"
                            ”™¸ïß”            # push "Steve Ball"
                                  [Ž          # loop until stack is empty
                                    ì         # prepend the top string to the 2nd top string
                                     '.«      # append a dot
                                        =     # print without popping
                                         ¨    # remove the dot
                                          ð«  # append a space

Oh bagus, berhasil menggunakan kompresi kamus untuk semuanya kecuali Ballmer?
Skidsdev

@ Mayube: Ya. Saya mendapatkannya sebagian sekarang (bola) untuk menyimpan byte dengan merestrukturisasi string asli :)
Emigna

terlihat jauh lebih baik sekarang, kalau saja Anda bisa mengompres itumer
Skidsdev

@ Mayube: Saya bisa menyembunyikannya dengan mengompresi metetapi sayangnya itu tidak akan menyimpan byte: /
Emigna

2
@StigHemmer: Ini adalah 44 byte di halaman kode
05AB1E

15

Retina , 82 75 byte

Terima kasih kepada Neil untuk menghemat 7 byte.

Hitungan byte mengasumsikan penyandian ISO 8859-1.


Steve Ballmer still does not know what he did wrong with mobile.
 w
.¶$`$&

Cobalah online!

Penjelasan


Steve Ballmer still does not know what he did wrong with mobile.

Inisialisasi string yang berfungsi ke judul penuh.

 w
.¶$`$&

Seperti yang ditunjukkan oleh Neil, ketiga pemotongan dibuat sebelum kata dimulai dengan w, dan tidak ada kata lain yang dimulai dengan w. Jadi kami mencocokkan spasi diikuti oleh wuntuk menemukan titik pemotongan. Pada titik-titik ini, kami memasukkan yang berikut:

  • , titik, dan umpan baris untuk memotong kalimat dan memulai yang baru.
  • $`, seluruh string di depan pertandingan, sehingga kalimat berikutnya dimulai dari awal.
  • $&, ruang dan wlagi, sehingga mereka juga bagian dari kalimat selanjutnya.

Kami tidak perlu mencocokkan mobilesecara eksplisit, karena itu hanya akan menjadi apa yang tersisa pada pertandingan ketiga.


3
Anda hanya perlu mencocokkan pada <spasi> w dan ganti dengan .¶$`$&.
Neil

@ Neil Oh, itu benar-benar rapi, terima kasih. :)
Martin Ender


8

/// , 88 byte

8 byte disimpan oleh @MartinEnder!

/1/Steve Ballmer still does not know//2/1 what he did//3/2 wrong/1.
2.
3.
3 with mobile.

Cobalah online!


1
Anda dapat menyimpan sedikit lebih banyak dengan memindahkan awalan sebelumnya ke setiap substitusi: tio.run/…
Martin Ender

@ MartinEnder Itu sangat pintar. Terima kasih!
steenbergh

1
Oh, dan 5 lainnya dengan menjatuhkan 4semuanya: tio.run/##DcLRDcMgDAXA/…
Martin Ender

5
@ MartinEnder "Ya, saya akan minta nomor 3 dengan ponsel."
steenbergh


7

Java 8, 127 126 byte

()->{String t="Steve Ballmer still does not know",d=".\n";return t+d+(t+=" what he did")+d+(t+=" wrong")+d+t+" with mobile.";}

-1 byte terima kasih kepada @KonstantinCh .

Coba di sini.


1
Semoga Anda tidak keberatan bahwa saya mencuri ide Anda, itu jauh lebih baik daripada pendekatan pengulangan saya.
TheLethalCoder

@TheLethalCoder Tidak masalah sama sekali, karena saya melihat Anda telah memberi saya kredit. :) Btw, stringtidak bisa vardi C # lambda Anda?
Kevin Cruijssen

Tidak karena saya mendeklarasikan banyak sekaligus.
TheLethalCoder

@TheLethalCoder Ah tentu saja, saya buruk .. Dan ()=>{var t="Steve Ballmer still does not know";return t+".\n"+(t+=" what he did")+".\n"+(t+=" wrong")+".\n"+t+" with mobile"+".";};sayangnya tiga byte lebih lama.
Kevin Cruijssen

1
Konstantin Ch menyarankan mengubah "+ddi akhir ."untuk menyimpan byte karena umpan baris terakhir adalah opsional.
Martin Ender


6

Jelly , 52 46 byte

“ṬċḌ)⁹œḃṣ⁷Ṅḋ%W3Œƭ;ḷẓ“£Ṿ⁴'Þḣ~ẉ“¥Ị)“Ṡ8gÐ/»;\p”.Y

Kredit untuk ṬċḌ)⁹œḃṣ⁷Ṅḋ%W3Œƭ;ḷẓpergi ke @EriktheOutgolfer, yang menggunakannya dalam jawabannya .

Cobalah online!

Bagaimana itu bekerja

Bagian terbesar dari pekerjaan ini dilakukan oleh kompresi kamus Jelly di sini.

ṬċḌ)⁹œḃṣ⁷Ṅḋ%W3Œƭ;ḷẓ

mengkodekan

Steve| Ball|mer| still| do|es| no|t| know

ada |menunjukkan batas-batas antara kata-kata yang mana diambil dari kamus dan string yang dikodekan karakter demi karakter ( mer, es, dan t).

Demikian pula, £Ṿ⁴'Þḣ~ẉmengkodekan  what| he| did(mengherankan, hetidak tidak berasal dari kamus), ¥Ị)mengkodekan  wrong, dan Ṡ8gÐ/mengkodekan  with| mobile.

“ṬċḌ)⁹œḃṣ⁷Ṅḋ%W3Œƭ;ḷẓ“£Ṿ⁴'Þḣ~ẉ“¥Ị)“Ṡ8gÐ/»

dengan demikian menghasilkan array string

“Steve Ballmer still does not know“ what he did“ wrong“ with mobile”

;\ secara kumulatif dikurangi dengan penggabungan, membangun frase pada setiap baris.

Akhirnya, p”.hitung produk Cartesian dari frasa-frasa ini dan karakter titik, dan Ypisahkan kalimat-kalimat yang dihasilkan oleh linefeeds.


Menurut hitungan saya, ini adalah 97 byte.
Stig Hemmer

@ StigHemmer Di UTF-8, itu akan menjadi. Namun, Jelly juga mendukung rangkaian karakter byte tunggal ini .
Dennis

6

JavaScript (ES6), 102 byte

_=>(s="Steve Ballmer still does not know")+`.
${s+=" what he did"}.
${s+=" wrong"}.
${s} with mobile.`

Cobalah

o.innerText=(
_=>(s="Steve Ballmer still does not know")+`.
${s+=" what he did"}.
${s+=" wrong"}.
${s} with mobile.`
)()
<pre id=o>


Pendekatan yang bagus Saya telah "meminjam" untuk jawaban C # saya.
TheLethalCoder

1
Mungkin saya tidak mengerti aturan mainnya, tetapi fungsi ini hanya berfungsi dengan benar jika Anda menggunakan browser dan menggunakan inertext pre tag seperti yang Anda lakukan. Jadi bukankah lebih dari 102 byte, karena itu tergantung pada o.innerText = dan <pre id = "o"> dan benar-benar mendapatkan elemen?
Paul

@ Paul Saya tahu ini sudah tua tapi, fungsi anonim adalah bentuk I / O yang dapat diterima sebagai entri, jadi selama mengembalikan data yang diharapkan, tidak perlu menampilkannya secara langsung.
Dom Hastings

5

C (gcc) , 124 122 byte

#define A"Steve Ballmer still does not know"
#define B".\n"A" what he did"
f(){puts(A B B" wrong"B" wrong with mobile.");}

Cobalah online!


Anda dapat menghapus spasi di antara Adan B, dan string yang menentukannya.
Dennis

4

Retina , 95 86 byte

:`
Steve Ballmer still does not know.
:`.$
 what he did.
:`.$
 wrong.
.$
 with mobile.

Cobalah online! Sunting: Disimpan 9 byte dengan beralih dari mengeluarkan seluruh string ke membangun string menjadi beberapa bagian. The :`diperlukan pada tiga tahap pertama yang membuat output mereka.


ooh itu pintar, menghapus segala sesuatu di antara wdan e, lalu menghapus semua antara wrdan e, lalu widan e. Tidak super golf karena inline-line Retina, tapi pasti keren nontheless
Skidsdev

@ Mayube Ternyata tidak terlalu golf sama sekali, jadi saya sudah beralih metode. (Masih tidak sekeren jawaban Martin Ender.)
Neil

3

C #, 158 128 120 114 byte

()=>{var s="Steve Ballmer still does not know";return s+$@".
{s+=" what he did"}.
{s+=" wrong"}.
 with mobile.";};

Disimpan 30 byte berkat @KevinCruijssen.
Disimpan 6 byte berkat @Shaggy.


Versi menggunakan sub-stringing untuk 120 byte:

s=n=>"Steve Ballmer still does not know what he did wrong with mobile".Substring(0,n)+".\n";()=>s(33)+s(45)+s(51)+s(63);

Versi yang dipinjam dari @KevinCruijssen untuk 128 byte:

()=>{string t="Steve Ballmer still does not know",d=".\n";return t+d+(t+=" what he did")+d+(t+=" wrong")+d+t+" with mobile"+d;};

Versi menggunakan perulangan untuk 158 byte:

()=>{var r="";for(int i=0;++i<5;)r+=$"Steve Ballmer still does not know{(i>1?$" what he did{(i>2?$" wrong{(i>3?" with mobile":"")}":"")}":"")}.\n";return r;};

Pendekatan sederhana menggunakan pernyataan ternary dalam satu lingkaran untuk menambahkan bagian-bagian baru ke string setiap kali.


Sebagai tambahan, perlu dicatat bahwa ini hanya berfungsi karena C# >= 6versi sebelumnya tidak memiliki string yang diinterpolasi
Skidsdev

@ Mayube Benar, tapi saya menggunakan ini untuk menggunakan pendekatan Kevin saat ini karena itu jauh lebih baik daripada milik saya haha
TheLethalCoder

Harus bermain 2 byte lebih banyak sehingga Anda dapat mengalahkan jawaban java D:
Skidsdev

@ Mayube Jawaban Java biasanya mengalahkan C # karena mereka tidak menyertakan titik koma. Selalu menyebalkan!
TheLethalCoder

@ Mayube Selesai, untuk saat ini setidaknya ...
TheLethalCoder

3

Bash, 111 109 107 byte

a=(Steve Ballmer still does not know "what he did" wrong with\ mobile)
for i in {6..9};{ echo ${a[@]::i}.;}

Cobalah online!


3

Vim, 79 penekanan tombol

iSteve Ballmer still does not know.<CR><C-x><C-l><Backspace> what he did.<CR><C-x><C-l><Backspace> wrong.<CR><C-x><C-l><Left> with mobile

<C-x><C-l>lengkapi secara otomatis dengan baris sebelumnya. Atau Anda dapat mengganti setiap kemunculan <CR><C-x><C-l>dengan<Esc>o<C-a>



3

Ruby, 94 byte

"!-3Z".bytes{|i|puts"Steve Ballmer still does not know what he did wrong with mobile"[0,i]+?.}

Iterasi melalui 4 karakter dalam string pertama, konversi masing-masing ke nilai ascii-nya ndan keluaran nkarakter pertama dari string kedua setiap kali. Tidak peduli apa karakter terakhir dari string pertama, asalkan nilainya ascii sama atau lebih besar dari panjang string kedua.


3

Fission, 299 291 269 ​​byte

MN"."                             ]              ]        ]
                                  W$]            W$$]     W$$$]
R"Steve Ballmer still does not know"%[" what he did"%[" wrong"%[" with mobile.";
                                    [W              [W        [W

Cobalah online!

Akhirnya bahasa 2D saya mengerti!

Penjelasan

Program menghasilkan atom dengan 1 massa dan 0 energi ( 1:0atom) di Rjalur 3, dan mulai bergerak ke kanan.

"Steve Ballmer still does not know" mencetak setiap karakter.

% memindahkan atom ke atas jika memiliki 0 energi, atau menurunkan energinya dan memindahkannya ke bawah.

]menggerakkan atom ke kiri, $meningkatkan energi atom, Wmenggerakkan atom ke atas.

Setelah atom berada di baris atas, ia bergerak ke kiri, hingga mencapai ".", yang mencetak periode N, yang mencetak garis baru, dan akhirnya M, yang memindahkan atom ke bawah Rlagi, yang kemudian memindahkan atom ke kanan. .

Setiap loop energi atom adalah satu lebih tinggi, artinya akan melewati satu lagi %. Setelah loop ke-4, ia mencapai ;ujung baris ketiga, yang menghancurkan atom. Program berakhir setelah semua atom dihancurkan.


Bisakah Anda menambahkan penjelasan?
Shaggy

@Shaggy akan melakukannya
Skidsdev

Anda dapat mengompres bagian atas lebih banyak: 209 byte .
KSmarts

3

Japt , 70 68 65 61 60 59 byte

Berisi beberapa karakter yang tidak akan ditampilkan di sini; ikuti tautan di bawah ini untuk melihat kode lengkap.

`Sve Ba¥´r Ð]l º not know
 Ø  ¹d
 Ùg
 ØP ¶ßè`£'.iP±X}R

Cobalah online

  • 3 4 byte disimpan berkat ETH , ditambah 4 lainnya dengan beberapa bisikan.

Penjelasan

Segala sesuatu di antara 2 backticks adalah string terkompresi dari yang berikut:

Steve Ballmer still does not know
 what he did
 wrong
 with mobile
`...`             :Decompress the string.
     £       }R   :Map over the each line X in the string
         P±X      :   Append X to P (initially the empty string)
      '.i         :   Prepend that to the string "."

1
Bagus. Anda dapat menyimpan beberapa byte dengan melakukan [`Sve Ba¥´r Ð]l º not know`` Ø ¹d`` Ùg`` ØP ¶ßè.`]m@P+=X}, lalu beberapa byte lagi yang melibatkan menghapus [dan ](saya akan membiarkan Anda mencari yang keluar).
ETHproduk

Bagus, @ ETHproductions. Butuh beberapa menit untuk menguraikan bahwa antara kompresi dan karakter SE tidak ditampilkan tapi saya sampai di sana dan sekarang saya pikir saya melihat penghematan lain yang Anda mengisyaratkan juga.
Shaggy

1
Anda mungkin lebih baik jika Anda menghapus pemisahan dan bergabung, dan bukannya lakukan £P±X +'.}Rpada akhirnya
ETHproduksi

@ ETHproductions, masih ada di 61 byte, tapi jelas lebih rapi; menghilangkan kebutuhan akan baris baru yang tertinggal. EDIT: Oh, tunggu, tidak, saya bisa menghemat 1 byte dengan pendekatan itu :)
Shaggy



2

SOGL , 42 byte

⁹⁴<>‘υG‘Γω/w¹‘O‛Æw▓½0H(æ█◄K∆2Ξgh‘4{Tļ.@+;+

Penjelasan:

..‘                    push "with mobile"
   ..‘                 push "wrong"
      ..‘              push "what he did"
         ..‘           push "Steve Ballmer still does not know"
            4{         4 times do
              T          output, not popping the top of stack
               ļ.        output "."
                 @+      append a space to the top thing in stack
                   ;+    reverse add (adding the next part to the top thing in stack)

Bagaimana Anda menggunakan SOGL? Saya telah menginstal Pemrosesan dan semua versi, meskipun saya tidak tahu bagaimana Anda akan menjalankannya.
Erik the Outgolfer

buka "P5Parser" tanpa label versi, dan di foldernya data/p.sogltempel kode. Kemudian menjalankan kode pemrosesan harus menjalankannya dan outputnya harus di konsol
dzaima

Mencoba menjalankan kode Anda, tetapi tidak memiliki output apa pun ..../processing-java --sketch=../SOGL/P5Parser --run p.sogl ""
Erik the Outgolfer

Ini bekerja untuk saya. Cobalah memberikannya path lengkap alih-alih p.sogl. jika tidak ada STDOUT atau P5Parser/output.txt, saya tidak tahu.
dzaima

Ini adalah output untuk saya, dipisahkan menjadi STDOUT dan STDERR.
Erik the Outgolfer



2

Nim , 100 byte

for i in " ,2>":echo "Steve Ballmer still does not know what he did wrong with mobile"[0..i.int],"."

di sini sama dengan kode yang lebih mudah dibaca:

const str = "Steve Ballmer still does not know what he did wrong with mobile"

for i in [32, 44, 50, 62]:
  echo(str[0..i], ".")

Bahasa ini memiliki irisan string dan batas atas yang inklusif. Selebihnya harus menjelaskan sendiri jika Anda tahu pemrograman.


1

Arang , 71 69 byte

A⟦⟧βF⪪”↓/‘ZQ≔'Wε}÷&’/↗∧μ~⎇²~ηρπ‖¢β\`σuσI⌀δ#″:§▶¬QγγQZ–” w⁺⪫⊞Oβι w¦.¶

Cobalah online! Tautan adalah untuk versi versi kode, dengan beberapa pemisah dihilangkan karena deverbosifier tidak dapat melakukannya secara otomatis. Ini pada dasarnya adalah port jawaban @ KevinCruijssen.


1

> <> , 135 byte

".wonk ton seod llits remllaB evetS"\
l?!\o99+2*1./"h tahw  "32p10pao     \
52p\".did e"/"   "53p33p
  /\".gnorw"/
1p/\".elibom htiw;"3

Ini pada dasarnya melewati string, cetakan kemudian menggantikan fullstop dan mengkondisikan dengan spasi untuk terus bergerak sepanjang kode.

Mungkin yang terbaik untuk memvisualisasikannya menggunakan tautan kolam> <> di bawah ini;

> <> kolam!

Cobalah online!


1
Tidak pernah terpikir oleh saya bahwa knowdieja terbalik adalah wonk.
Trauma Digital

8
@DigitalTrauma Nah, sekarang Anda tidak akan
Produk ETH

1

Mathematica, 108 104 byte

"Steve Ballmer still does not know what he did wrong with mobile"~StringTake~#~Print~"."&/@{33,45,51,63}


Cobalah online!

-4 byte dari Martin


1

> <> , 126 byte

 \"elibom htiw \"10p";"15p
  "gnorw  "10p
  "did eh tahw \"11p
 \"wonk ton seod llits remllaB evetS\"12p04.
  l?!vo
oo00.>a"."
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.