Celem jest tutaj odwrócenie łańcucha za pomocą jednego zwrotu:
Utrzymuj wielkie litery w tych samych miejscach.
Przykład danych wejściowych 1: Hello, Midnightas
Przykład danych wyjściowych 1:SathginDim ,olleh
Przykład danych wejściowych 2: Przykład danych .Q
wyjściowych 2:q.
Zasady :
- Wyjście do STDOUT, wejście z STDIN
- Zwycięzca zostanie wybrany 13 lipca w GMT + 3 12:00 (jeden tydzień)
- Dane wejściowe mogą składać się tylko z symboli ASCII, co ułatwia programom, które nie używają żadnego kodowania zawierającego znaki inne niż ASCII.
- Wszelkie znaki interpunkcyjne, które kończą się w miejscu, w którym była wielka litera, należy zignorować.
Odpowiedzi:
TCC - 4 bajty
Wypróbuj online!
Wyjaśnienie:
źródło
tcc.lua
przed opublikowaniem wyzwania? Biorąc pod uwagę, że ostatnio dodałeś polecenia, aby rozwiązać trzy inne wyzwania, zakładam, że tak nie było. Jeśli twoja odpowiedź wymaga wersji językowej, która opublikowała wyzwanie, musisz oznaczyć ją w nagłówku jako niekonkurującą . Usunę mój głos negatywny po dodaniu etykiety lub dostarczę dowód, że Twój kod działał we wcześniejszej wersji.Python, 71 bajtów
Wypróbuj online
-3 bajty od Ruuda oraz inspiracja dla 2 kolejnych.
-4 dodatkowe bajty od FryAmTheEggman
źródło
lambda s:''.join([z.lower(),z.upper()][c.isupper()]for c,z in zip(s,s[::-1]))
jest trzy bajty krótszy(z*2).title()[c.isupper()-1]
powinno działać.~c.isupper()
zamiastc.isupper()-1
Python 2, 73 bajty
Ponieważ reguły określają dane wejściowe to ascii:
Wszystkie zasługi należą się @Mego, ale nie miałem reputacji, aby komentować jego odpowiedź.
źródło
Perl, 31 + 2 (
-lp
) = 33 bajtyTo rozwiązanie pochodzi z @Ton Hospel (13 bajtów krótszych niż moje).
Ale będziesz potrzebować
l
i sięp
włączy. Aby uruchomić:źródło
-a
autosplitu, wydaje mi się, że mogłem go używać wiele razy w przeszłości! Muszę to pamiętać! Myślę, że można zaoszczędzić kolejny bajt używającmap...,...
zamiastmap{...}...
, jak masz$F
na początku chociaż! :)perl -lpe 's%.%(lc$>$&?u:l)."c chop"%eeg
-a
implikuje to-F
-a
(i-n
) sugerowanego przeze-F
mnie, czytałem to jakiś czas temu na Perlrun, próbowałem, ale to nie zadziałało; ale spróbowałem teraz jeszcze raz i działa dobrze, więc zgaduję, że wtedy zrobiłem coś złego. Dzięki.Pyth,
1311109 bajtówDzięki @FryAmTheEggman za przypomnienie mi
V
i @LeakyNun o kolejny bajt.Wypróbuj online! teraz na telefonie komórkowym, trochę aktualizuję link
źródło
srV_Qm!rId0
ma 11 lat, ale myślę, że skrócenie tej mapy może być możliwe ...d
i zapisałeś bajt.srV_Qm!/G
powinien uratować bajtPython, 66 bajtów
Powtarza się przez indeksy
i
, biorąc postaćs[~i]
z tyłu i przypadeks[i]
z przodu. Bycie kapitałem jest sprawdzane jako leżące w ciągłym zakresie@ABC...XYZ[
. Podziękowania dla FryAmTheEggman za(_*2).title()
lewę.źródło
Siatkówka ,
756765 bajtówLiczba bajtów zakłada kodowanie ISO 8859-1.
Wypróbuj online! (Pierwszy wiersz włącza zestaw testów z wieloma przypadkami testowymi oddzielonymi od linii).
źródło
JavaScript (ES6),
9583 bajtówEdycja: Zaoszczędzono ogromne 12 bajtów dzięki @ edc65.
źródło
r=
jest konieczne.)Pyke,
11109 bajtówWypróbuj tutaj!
źródło
05AB1E ,
19161513 bajtówDzięki Emigna za uratowanie 3 bajtów!
Prawdopodobnie zostanie pokonany przez Jelly ... Kod:
Wykorzystuje kodowanie CP-1252 . Wypróbuj online! .
źródło
S.l_v¹lRNèyiu}?
jest 1 bajt krótszyÂuvy¹Nè.lilë}?
ma 14. Po prostu cieszę się, że mogę ci pomócRuvy¹Nè.lil}?
tak właściwie. Nie użyłem rozwidlenia i zapomniałem usunąć pozostałe. Więc 13.MATL , 13 bajtów
Wypróbuj online!
źródło
J , 30 bajtów
Nie obsługuje innych niż ASCII
źródło
Brachylog , 28 bajtów
Wyjaśnienie
Główny predykat:
Predykat 1:
źródło
TSQL, 175 bajtów
Gra w golfa:
Nie golfił
Skrzypce
źródło
Właściwie 25 bajtów
Wypróbuj online!
Wyjaśnienie:
źródło
Haskell,
83807571 bajtówNajprostszy sposób, jaki mogłem wymyślić.
źródło
(#)
,k
możesz przepisać w stylu bez punktówk=reverse>>=zipWith(#)
b
ponieważ jestf a|isUpper a=toUpper|1>0=toLower
to sprzeczne z poprawą Flonka.f
xnora i przepisać Flonkak
nazipWith f<*>reverse
.s
?k=
.PowerShell,
154,152,99, 86 bajtówDziękuję @ TimmyD za uratowanie mnie aż 47 bajtów (zapisałem również dodatkowe 6)
Dziękujemy @TessellatingHeckler za zapisanie dodatkowych 13 bajtów.
Najnowszy:
Oryginalny:
Normalne formatowanie:
Najnowsze (moim zdaniem najlepiej jak dwie linie):
Wyjaśnienie:
Oryginalny:
Pierwszy plakat tutaj był motywowany, ponieważ rzadko widzę PowerShell,
ale przyWszelkie sugestie mile widziane.154152 bajtach na tym ... Rozumiem dlaczego!Nauczyłem się, że muszę całkowicie zmienić sposób myślenia na golfa w kodzie i jego zabawie!
źródło
.tostring()
cudzysłowy i używając manipulacji liczbami całkowitymi ASCII zamiast wyrażenia regularnego. Spróbuj wykonać następujące czynności dla 105 bajtów -param($a)-join($a[$a.length..0]|%{if(($x=$a[$i++])-le90-and$x-ge65){"$_".ToUpper()}else{"$_".ToLower()}})
.param($a)-join($a[$a.length..0]|%{if(65..90-contains$a[$i++]){"$_".ToUpper()}else{"$_".ToLower()}})
X-inY
jest krótszy niżY-containsX
, można zmienićif
dla operatora fałszywe potrójnego uzyskać 86 bajtów -param($a)-join($a[$a.length..0]|%{("$_".ToLower(),"$_".ToUpper())[$a[$i++]-in65..90]})
Dyalog APL , 12 bajtów
819⌶
to funkcja składania skrzynekf←
ponieważ jego nazwa jest długa, przypisujemy ją do f⊢≠f
Boolean, w którym tekst różni się od tekstu pisanego małymi literamif¨⍨
użyj tego (1 oznacza wielkie litery, 0 oznacza małe litery), aby złożyć każdą literę ...⌽
... odwróconego tekstuObsługuje non-ASCII zgodnie z zasadami konsorcjum Unicode.
źródło
CJam, 22 bajty
Sprawdź to tutaj.
źródło
Rakieta, 146 bajtów
Rakieta jest zła w tej całej grze w golfa.
Wzruszenie Jak zawsze każda pomoc w skróceniu tego będzie mile widziana.
źródło
Jolf, 21 bajtów
Wypróbuj tutaj!
Wyjaśnienie
źródło
(d)is function
... Poświęć pisownię dla golfa!Perl 6 , 29 bajtów
źródło
C #,
8685 bajtówAC # lambda, gdzie wejście i wyjście jest ciągiem. Możesz spróbować na .NetFiddle .
Jestem stara się zrozumieć, dlaczego nie mogę osiągnąć konwertowaćchar.ToLower(c)
doc+32
. Mam nadzieję to naprawić!12 bajtów zapisanych dzięki @PeterTaylor (
c|32
aby dodać 32 do wartości asciic
ic&~32
odjąć 32). Wynik wynosiłby 72 bajty (ale może się nie powieść w przypadku znaków innych niż alfa).źródło
c|32
zamiastc+32
, ale nie będzie działać ze znakami innymi niż alfa.PHP, 128 bajtów
Mogę spróbować dalej to zoptymalizować, ale zostawię to na razie.
źródło
Oktawa,
5150 bajtów@(s)merge(isupper(s),b=flip(toupper(s)),tolower(b))
źródło
VIM, 46 bajtów
Byłyby trzy bajty
g~G
, gdybyśmy nie musieli czytać ze standardowego wejścia ani pisać na standardowe wyjście, ale cóż ...Aby to przetestować, uruchom
To jest moje pierwsze zgłoszenie tutaj, nie jestem pewien, czy tego rodzaju zgłoszenie jest dopuszczalne.
źródło
:se ri<cr>C<C-r>"
ale wtedy musisz wymyślić, jak wpisać wielkie litery.JavaScript (przy użyciu zewnętrznej biblioteki) (224 bajty)
Oświadczenie: Używając biblioteki, którą napisałem, aby przenieść LINQ C # do Javascript
źródło
Sed, 113 + 1 = 114 bajtów
Czemu? Ponieważ fajnie jest używać niewłaściwego narzędzia do robienia różnych rzeczy: P
Sposób użycia: Uruchom
sed -rf file
, wprowadź tekst i naciśnij Ctrl+ D(wyślij EOF).Gra w golfa:
Nie golfowany:
źródło
Java 7,
221217180 bajtówMnóstwo bajtów zaoszczędzonych dzięki podejściu @LeakuNun .
Przypadki bez golfa i testy:
Wypróbuj tutaj.
Wydajność:
źródło
char[]
.String a="";
i zmianęo+=
na0[i]=
zapisywanie bajtów, ale Java nie ma znaku.toUpperCase()
/.toLowerCase()
metody, a konwersja z char na String, użycie metody górnej / dolnej, a następnie powrót do char wymagałaby (dużo) więcej bajty. Ale nie krępuj się rozwiązywać połączonego ideonu i wymyślić coś, co sprawi, żechar[]
praca będzie mniejsza.do
źródło