Ciekawy przypadek Steve'a Ballmera

46

Steve Ballmer jest byłym dyrektorem generalnym Microsoft, aw ostatnim artykule stwierdził, że „nadal nie wie, co zrobił źle z telefonem komórkowym”.

Jak zauważył biuletyn CodeProject , „tytuł tego artykułu można by zakończyć w wielu miejscach i nadal być dokładny”.

Bez danych wejściowych wypisz następujące dane:

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.

To musi być wyprowadzone dokładnie tak, jak pokazano, i musi być jedynym wyjściem twojego programu. Możesz dołączyć pojedynczy znak nowej linii.

To jest więc wygrywa najmniej bajtów w każdym języku

Skidsdev
źródło
59
Kiedy zobaczyłem tytuł / tagi, pomyślałem, że wynik będziedevelopers developers ...
Rod
15
tcl, 25 - while 1 {puts developers}- demo
sergiol
8
braingolf, 23 - 1"developers "[!@11 1>]: P
Skidsdev
16
I pomyślałem o Ballmer Peak
ojdo
5
tak, 14 -yes developers
sergiol

Odpowiedzi:

26

Python 3 , 100 99 99 97 bajtów

-1 bajt dzięki ovs
-1 bajt dzięki Jonathan Allan
-1 bajt dzięki Dennis

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

Wypróbuj online!

Pręt
źródło
17

Haskell, 96 bajtów

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

Wypróbuj online!

scanljest podobny foldl(lub redukuje, jak to się nazywa w innych językach), z tym wyjątkiem, że zwraca listę wszystkich wyników pośrednich zamiast tylko końcowego. Każdy wynik pośredni jest dołączany ".\n"i wszystkie są łączone w jeden ciąg.

nimi
źródło
17

05AB1E , 50 49 45 44 bajtów

4 bajty zapisane z inspiracją odpowiedzią Java Kevina

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

Wypróbuj online!

Wyjaśnienie

„€Ž†©                                         # 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
Emigna
źródło
Och, fajnie, udało mi się użyć kompresji słownika do wszystkiego oprócz Ballmer?
Skidsdev
@Mayube: Tak. Mam go teraz częściowo (piłka), aby zaoszczędzić bajt poprzez restrukturyzację oryginalnego ciągu :)
Emigna
wygląda teraz znacznie lepiej, gdybyś mógł to skompresowaćmer
Skidsdev
@Mayube: Mógłbym to ukryć, kompresując, meale niestety nie
zapisałoby to
2
@StigHemmer: Jest 44 bajtów na stronie kodowej
05AB1E
15

Siatkówka , 82 75 bajtów

Dzięki Neil za oszczędność 7 bajtów.

Liczba bajtów zakłada kodowanie ISO 8859-1.


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

Wypróbuj online!

Wyjaśnienie


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

Zainicjuj ciąg roboczy do pełnego nagłówka.

 w
.¶$`$&

Jak zauważył Neil, wszystkie trzy skróty są wykonywane przed słowem zaczynającym się od wi nie ma innych słów zaczynających się od w. Dopasowujemy więc spację, a po niej, waby znaleźć punkty obcięcia. W tych punktach wstawiamy następujące elementy:

  • , kropka i kreska, aby skrócić zdanie i rozpocząć nowe.
  • $`, cały ciąg przed dopasowaniem, dzięki czemu następne zdanie zaczyna się od początku.
  • $&, spacja i wjeszcze raz, aby były również częścią następnego zdania.

Nie musimy dopasowywać mobilejawnie, ponieważ będzie to po prostu to, co pozostało z trzeciego meczu.

Martin Ender
źródło
3
Musisz tylko dopasować na <space> w i zastąpić .¶$`$&.
Neil
@ Nee Oh, to naprawdę miłe, dziękuję. :)
Martin Ender
9

PHP, 104 95 94 bajtów

<?=$a="Steve Ballmer still does not know",$a=".
$a what he did",$a.=" wrong",$a?> with mobile.
użytkownik63956
źródło
1
Brakuje „co”?
TheLethalCoder
8

/// , 88 bajtów

8 bajtów zapisanych przez @MartinEnder!

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

Wypróbuj online!

Steenbergh
źródło
1
Możesz zaoszczędzić nieco więcej, przenosząc poprzedni prefiks do każdej zmiany: tio.run/…
Martin Ender
@MartinEnder To szczególnie sprytne. Dzięki!
steenbergh
1
Aha, i kolejne 5, porzucając 4całkowicie: tio.run/##DcLRDcMgDAXA/…
Martin Ender
5
@MartinEnder „Tak, poproszę telefon komórkowy nr 3”.
steenbergh
7

05AB1E , 46 bajtów

”™¸ïßme”“r„â‚à€–ƒ€“«…€À€½ƒ§'–Ñ„€Ž†©).pvyðý'.«»

Wypróbuj online!

Erik the Outgolfer
źródło
To według mnie 98 bajtów.
Stig Hemmer
@StigHemmer 05AB1E używa własnej strony kodowej z 256 bajtami, która koduje każdy znak w jednym bajcie. Stąd 46 bajtów, chociaż jest to o wiele więcej bajtów w podstawowym kodowaniu UTF-8.
Kevin Cruijssen
7

Java 8, 127 126 bajtów

()->{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 bajt dzięki @KonstantinCh .

Wypróbuj tutaj.

Kevin Cruijssen
źródło
1
Mam nadzieję, że nie masz nic przeciwko, że ukradłem twój pomysł, jest o wiele lepszy niż moje podejście do zapętlania.
TheLethalCoder
@TheLethalCoder Nie ma żadnego problemu, ponieważ widzę, że mi się przypisałeś. :) Btw, stringnie możesz być varw swoim C # lambda?
Kevin Cruijssen
Nie, ponieważ deklaruję wiele naraz.
TheLethalCoder
@TheLethalCoder Ach, oczywiście, mój zły .. I ()=>{var t="Steve Ballmer still does not know";return t+".\n"+(t+=" what he did")+".\n"+(t+=" wrong")+".\n"+t+" with mobile"+".";};jest niestety o trzy bajty dłuższy.
Kevin Cruijssen
1
Konstantin Ch sugeruje zmianę "+dna końcu, ."aby zapisać bajt, ponieważ końcowe podawanie linii jest opcjonalne.
Martin Ender
6

C (gcc) , 112 bajtów

f(){printf("%.33s.\n%1$.45s.\n%1$s.\n%1$s with mobile.","Steve Ballmer still does not know what he did wrong");}

Wypróbuj online!

Dennis
źródło
6

Galaretka , 52 46 bajtów

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

Podziękowania dla ṬċḌ)⁹œḃṣ⁷Ṅḋ%W3Œƭ;ḷẓ@EriktheOutgolfer, który wykorzystał to w swojej odpowiedzi .

Wypróbuj online!

Jak to działa

Lwia część pracy odbywa się tutaj poprzez kompresję słownikową Jelly.

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

koduje

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

nie |wskazuje granice między wyrazami, że gdy odebrane ze słownika i łańcuchy, które są kodowane po jednym znaku ( mer, esi t).

Podobnie £Ṿ⁴'Þḣ~ẉkoduje  what| he| did(zaskakująco, heczy nie pochodzą ze słownika), ¥Ị)koduje  wrongi Ṡ8gÐ/koduje  with| mobile.

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

w ten sposób daje tablicę ciągów

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

;\ kumulatywnie zmniejsza się przez konkatenację, budując frazy w każdej linii.

Na koniec p”.oblicza iloczyn kartezjański tych wyrażeń i znaku kropki i Yoddziela powstałe zdania według linii.

Dennis
źródło
Według moich obliczeń jest to 97 bajtów.
Stig Hemmer
@StigHemmer W UTF-8 byłoby to. Jednak Jelly obsługuje również ten zestaw znaków jednobajtowych .
Dennis
6

JavaScript (ES6), 102 bajty

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

Spróbuj

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

Kudłaty
źródło
Ładne podejście „pożyczyłem” go na moją odpowiedź w języku C #.
TheLethalCoder
1
Może nie rozumiem zasad gry, ale ta funkcja działa poprawnie tylko wtedy, gdy korzystasz z przeglądarki i używasz wstępnego tagu w tekście, tak jak to zrobiłeś. Czyż nie jest to więcej niż 102 bajty, ponieważ zależy to od o.innerText = i <pre id = "o"> i faktycznego uzyskania elementu?
Paul
@Paul Wiem, że jest stary, ale anonimowa funkcja jest akceptowalną formą wejścia / wyjścia jako wpisu, więc dopóki zwraca oczekiwane dane, nie musi wyświetlać ich bezpośrednio.
Dom Hastings,
5

C (gcc) , 124 122 bajtów

#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.");}

Wypróbuj online!

Giacomo Garabello
źródło
Możesz usunąć spacje między Ai Boraz ciągi, które je definiują.
Dennis
4

Siatkówka , 95 86 bajtów

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

Wypróbuj online! Edycja: Zapisano 9 bajtów, przechodząc z części wyjściowych całego łańcucha do budowania łańcucha w kawałkach. :`Jest potrzebne na pierwszych trzech etapach, aby je wyjścia.

Neil
źródło
ooo to sprytne, usuwając wszystko między wa e, a następnie usuwając wszystko między wra e, a następnie wii e. Nie super golfowy z powodu nowej linii Retiny, ale zdecydowanie fajny
Skidsdev
@Mayube Okazało się, że wcale nie jest bardzo golfowy, więc zmieniłem metody. (Nadal nie tak fajna, jak odpowiedź Martina Endera).
Neil
3

C #, 158 128 120 114 bajtów

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

Zaoszczędź 30 bajtów dzięki @KevinCruijssen.
Zaoszczędź 6 bajtów dzięki @Shaggy.


Wersja korzystająca z podciągu dla 120 bajtów:

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);

Wersja zapożyczona z @KevinCruijssen na 128 bajtów:

()=>{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;};

Wersja wykorzystująca zapętlenie dla 158 bajtów:

()=>{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;};

Proste podejście przy użyciu instrukcji potrójnych w pętli, aby za każdym razem dołączać nowe części do łańcucha.

TheLethalCoder
źródło
C# >= 6
Nawiasem
@ Mayube To prawda, ale teraz gram w golfa, aby zastosować podejście Kevina, ponieważ jest to o wiele lepsze niż moje haha
TheLethalCoder
Musisz golfa jeszcze 2 bajty, abyś mógł pokonać java odpowiedź D:
Skidsdev
@Mayube Odpowiedzi w Javie zwykle przekraczają C #, ponieważ nie zawierają końcowego średnika. Zawsze jest denerwujące!
TheLethalCoder
@Mayube Zrobiłem to, na razie przynajmniej ...
TheLethalCoder
3

Bash, 111 109 107 bajtów

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

Wypróbuj online!

DrnglVrgs
źródło
3

Vim, 79 klawiszy

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>automatycznie uzupełnia poprzednią linię. Alternatywnie można zastąpić wszystkie wystąpienia <CR><C-x><C-l>z<Esc>o<C-a>

Gajówka
źródło
3

CJam , 79 bajtów

4{)"Steve Ballmer still does not know
hat he did
rong
ith mobile"N/<" w"*'.+N}%

Wypróbuj online!

Erik the Outgolfer
źródło
wow, ciekawy wzór znalezienia
Destructible Lemon
3

Ruby, 94 bajty

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

Iteruje przez 4 znaki w pierwszym ciągu, konwertując każdy na jego wartość ascii ni wyprowadzając za nkażdym razem pierwsze znaki drugiego ciągu. Naprawdę nie ma znaczenia, jaki jest ostatni znak pierwszego łańcucha, o ile jego wartość ascii jest równa lub większa niż długość drugiego łańcucha.

Level River St
źródło
3

Rozszczepienie, 299 291 269 ​​bajtów

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

Wypróbuj online!

Wreszcie rozumiem język 2D!

Wyjaśnienie

Program spawnuje atom o 1 masie i zerowej energii ( 1:0atom) Rna linii 3 i zaczyna przesuwać się w prawo.

"Steve Ballmer still does not know" drukuje każdą postać.

% przesuwa atom w górę, jeśli ma 0 energii, lub zmniejsza jego energię i przesuwa ją w dół.

]przesuwa atom w lewo, $zwiększa energię atomu, Wprzesuwa atom w górę.

Gdy atom znajdzie się w górnym rzędzie, przesuwa się w lewo, aż osiągnie ".", co drukuje kropkę N, która drukuje nową linię, i na koniec M, który przesuwa atom w dół do Rponownie, co następnie przesuwa atom w prawo .

Każda pętla energii atomu jest o jeden wyższa, co oznacza, że ​​przejdzie przez jeszcze jedną %. Po czwartej pętli dochodzi do ;końca trzeciej linii, która niszczy atom. Program kończy się, gdy wszystkie atomy zostaną zniszczone.

Skidsdev
źródło
Czy możesz dodać wyjaśnienie?
Shaggy
@Shaggy zrobi
Skidsdev
Możesz skompresować górę znacznie więcej: 209 bajtów .
KSmarts,
3

Japt , 70 68 65 61 60 59 bajtów

Zawiera kilka znaków, które nie będą się tutaj wyświetlać; kliknij poniższy link, aby zobaczyć pełny kod.

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

Wypróbuj online

  • 3 4 bajty zapisane dzięki ETH , plus kolejne 4 z pewnymi monitami.

Wyjaśnienie

Wszystko między dwoma backtickami jest skompresowanym ciągiem następujących elementów:

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 "."
Kudłaty
źródło
1
Miły. Możesz zaoszczędzić trochę bajtów, wykonując [`Sve Ba¥´r Ð]l º not know`` Ø ¹d`` Ùg`` ØP ¶ßè.`]m@P+=X}, a następnie kilka kolejnych bajtów, które wymagają usunięcia [i ](pozwolę ci to rozgryźć).
ETHproductions
Niezły, @ETHproductions. Zajęło mi kilka minut, aby rozszyfrować, że między kompresją a znakami SE nie wyświetla się, ale już tam dotarłem i teraz myślę, że widzę inne oszczędności, o których również sugerujesz.
Kudłaty
1
Lepiej będzie, jeśli usuniesz podział i łączenie, a zamiast tego zrobisz £P±X +'.}Rna koniec
ETHproductions
@ETHproductions, nadal ma 61 bajtów, ale jest zdecydowanie ładniejszy; pozbywa się potrzeby nowej linii końcowej. EDYCJA: Och, czekaj, nie, mogę zaoszczędzić 1 bajt dzięki takiemu podejściu :)
Shaggy
2

Galaretka , 49 bajtów

“ṬċḌ)⁹œḃṣ⁷Ṅḋ%W3Œƭ;ḷẓ“¡=~Ṃ©N|ȯ“¡ṭṂ“CṬṀWỌ»ḣJK;¥€”.Y

Wypróbuj online!

Erik the Outgolfer
źródło
2

PHP, 116 bajtów

for(;$i<4;)echo"Steve Ballmer still does not know",["",$t=" what he did",$t.=" wrong","$t with mobile"][+$i++],".

„;

Wypróbuj online!

Jörg Hülsermann
źródło
2

SOGL , 42 bajty

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

Wyjaśnienie:

..‘                    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)
dzaima
źródło
Jak korzystać z SOGL? Zainstalowałem Przetwarzanie i wszystkie wersje, chociaż nie wiem, jak byś je uruchomił.
Erik the Outgolfer
otwórz „P5Parser” bez etykiet wersji, aw jego folderze data/p.soglwklej kod. Następnie uruchomienie kodu przetwarzania powinno go uruchomić, a dane wyjściowe powinny znajdować się w konsoli
dzaima
Próbowałem uruchomić kod, ale nie ma on żadnych danych wyjściowych ..../processing-java --sketch=../SOGL/P5Parser --run p.sogl ""
Erik the Outgolfer
Mi to pasuje. Spróbuj podać pełną ścieżkę zamiast p.sogl. jeśli nie ma nic w STDOUT lub P5Parser/output.txt, nie wiem.
dzaima
To jest wyjście dla mnie, podzielone na STDOUT i STDERR.
Erik the Outgolfer,
2

Sed, 96

s/^/Steve Ballmer still does not know./p
s/\./ what he did./p
s/\./ wrong./p
s/\./ with mobile./

Wypróbuj online .

Podano niejawny wpis nowej linii, zgodnie z tym meta-pytaniem .

Cyfrowa trauma
źródło
Możesz uzyskać 92 bajty, usuwając drugie dwa \.s
H.PWiz
2

Idź , 140 127 bajtów

import."fmt"
func f(){for _,i:=range"!-3?"{Println("Steve Ballmer still does not know what he did wrong with mobile"[:i]+".")}}

Wypróbuj online!

całkowicie ludzki
źródło
2

Nim , 100 bajtów

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

tutaj to samo w bardziej czytelnym kodzie:

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], ".")

Język ma krojenie ciągów znaków i włącznie górnych granic. Reszta powinna się wyjaśnić, jeśli znasz programowanie.

Arne
źródło
1

Węgiel drzewny , 71 69 bajtów

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

Wypróbuj online! Link jest do pełnej wersji kodu, z pominięciem niektórych separatorów, ponieważ deverbosifier nie może tego zrobić automatycznie. Jest to w zasadzie port odpowiedzi @ KevinCruijssen.

Neil
źródło
1

> <> , 135 bajtów

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

Zasadniczo przechodzi przez ciąg, wypisuje, a następnie zastępuje zatrzymanie pełne i warunkowe spacjami, aby poruszać się wzdłuż kodu.

Najlepszym rozwiązaniem może być wizualizacja za pomocą poniższego łącza do sadzawki;

> <> staw!

Wypróbuj online!

Pelikan turkusowy
źródło
1
Nigdy nie przyszło mi do głowy, że knowpisownia wsteczna wonk.
Cyfrowy uraz
8
@DigitalTrauma Cóż, teraz wygrałeś
ETHproductions
1

Mathematica, 108 104 bajtów

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


Wypróbuj online!

-4 bajty od Martina

J42161217
źródło
1

> <> , 126 bajtów

 \"elibom htiw \"10p";"15p
  "gnorw  "10p
  "did eh tahw \"11p
 \"wonk ton seod llits remllaB evetS\"12p04.
  l?!vo
oo00.>a"."
AGourd
źródło