Odwróć ciąg, zachowując wielkie litery w tych samych miejscach

28

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ć.

źródło
Czy to z nadrukiem czy bez? Czy to z ciągiem, czy bez?
„Wszelkie znaki interpunkcyjne, które kończą się w miejscu, w którym była wielka litera, należy zignorować”. , czy drugi przykład jest niezgodny z tą regułą?
Stefano Sanfilippo,
Jest to zgodne z regułą, ponieważ interpunkcje nie mają wielkiej odmiany.

Odpowiedzi:

7

TCC - 4 bajty

<>ci

Wypróbuj online!

Wyjaśnienie:

     - output is implicit in TCC
<>   - reverse string
  c  - preserve capitalization
   i - get input
brianush1
źródło
9
Czy to działało z wersją tcc.luaprzed 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.
Dennis
16

Python, 71 bajtów

lambda s:''.join((z*2).title()[c.isupper()-1]for c,z in zip(s,s[::-1]))

Wypróbuj online

-3 bajty od Ruuda oraz inspiracja dla 2 kolejnych.

-4 dodatkowe bajty od FryAmTheEggman

Mego
ź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
Arfie
1
@Ruud Thanks! Przeniesienie wywołania funkcji na zewnątrz listy wyboru pozwala zaoszczędzić jeszcze 2!
Mego,
2
(z*2).title()[c.isupper()-1]powinno działać.
FryAmTheEggman
6
Możesz wygrać kolejny bajt ~c.isupper()zamiastc.isupper()-1
Lulhum,
To nie pobiera danych wejściowych ze standardowego wejścia ani danych wyjściowych na standardowe wyjście ...
ArtOfWarfare
13

Python 2, 73 bajty

Ponieważ reguły określają dane wejściowe to ascii:

lambda s:''.join([z.lower,z.upper]['@'<c<'[']()for c,z in zip(s,s[::-1]))

Wszystkie zasługi należą się @Mego, ale nie miałem reputacji, aby komentować jego odpowiedź.

Lulhum
źródło
Czy możesz użyć wartości ascii „@” i „[”, aby uzyskać 2 bajty?
aloisdg mówi Przywróć Monikę
Niestety nie, musiałbym użyć ord (c), porównanie liczb całkowitych i ciągów znaków nie radzi sobie zbyt dobrze w Pythonie
Lulhum
Prawie to, co dostałem, ale byłeś pierwszy +1
lub
13

Perl, 31 + 2 ( -lp) = 33 bajty

To rozwiązanie pochodzi z @Ton Hospel (13 bajtów krótszych niż moje).

s%.%(lc$&gt$&?u:l)."c chop"%eeg

Ale będziesz potrzebować li się pwłączy. Aby uruchomić:

perl -lpe 's%.%(lc$&gt$&?u:l)."c chop"%eeg'
Dada
źródło
5
Witaj i witaj w PPCG! To jest świetne!
NoOneIsHere
Naprawdę bardzo ładnie! Nigdy nie korzystałem z -aautosplitu, 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ąc map...,...zamiast map{...}..., jak masz $Fna początku chociaż! :)
Dom Hastings,
Krótszy kod (31 + 2 bajty):perl -lpe 's%.%(lc$&gt$&?u:l)."c chop"%eeg
Ton Hospel
Zauważ, że -aimplikuje to-F
Ton Hospel
@ TonHospel wow, bardzo dziękuję i dobrze zrobione, to całkiem niezły kod! Co do -a(i -n) sugerowanego przeze -Fmnie, 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.
Dada,
9

Pyth, 13 11 10 9 bajtów

Dzięki @FryAmTheEggman za przypomnienie mi Vi @LeakyNun o kolejny bajt.

srV_Qm!/G

Wypróbuj online! teraz na telefonie komórkowym, trochę aktualizuję link

PurkkaKoodari
źródło
srV_Qm!rId0ma 11 lat, ale myślę, że skrócenie tej mapy może być możliwe ...
FryAmTheEggman
@FryAmTheEggman Usuń di zapisałeś bajt.
Leaky Nun
srV_Qm!/Gpowinien uratować bajt
Leaky Nun
8

Python, 66 bajtów

f=lambda s,i=0:s[i:]and(s[~i]*2).title()[~('@'<s[i]<'[')]+f(s,i+1)

Powtarza się przez indeksy i, biorąc postać s[~i]z tyłu i przypadek s[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ę.

xnor
źródło
5

Siatkówka , 75 67 65 bajtów

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

$
±·$`
O$^`\G[^·]

s{T`L`l`±.
T01`l`L`±.*·[A-Z]
±·

±(.)
$1±
·.
·

Wypróbuj online! (Pierwszy wiersz włącza zestaw testów z wieloma przypadkami testowymi oddzielonymi od linii).

Martin Ender
źródło
5

JavaScript (ES6), 95 83 bajtów

s=>[...t=s.toLowerCase()].reverse().map((c,i)=>s[i]==t[i]?c:c.toUpperCase()).join``

Edycja: Zaoszczędzono ogromne 12 bajtów dzięki @ edc65.

Neil
źródło
s => r = [... l = s.toLowerCase ()]. ​​reverse (). map ((c, i) => s [i]! = l [i]? c.toUpperCase (): c) .join'' -10
edc65
@ edc65 Dzięki! (Uwaga: nie r=jest konieczne.)
Neil
5

Pyke, 11 10 9 bajtów

_FQo@UhAl

Wypróbuj tutaj!

_         -   reversed(input)
 F        -  for i in ^
   o      -      o+=1
  Q @     -     input[^]
     Uh   -    ^.is_upper()+1
       Al -   [len, str.lower, str.upper, ...][^](i)
          - "".join(^)
niebieski
źródło
Najpierw dał mi błąd, a następnie poprawną odpowiedź. i.imgur.com/uTcH27F.png
Tak się zawsze dzieje, możesz kliknąć opcję wyłącz ostrzeżenia, aby ją wyłączyć.
Niebieski
Aha, okej. Przepraszam, nie jestem dobry z Pyke
Może dlatego, że jestem jedynym facetem, który go używa
Blue
4

05AB1E , 19 16 15 13 bajtów

Dzięki Emigna za uratowanie 3 bajtów!

Prawdopodobnie zostanie pokonany przez Jelly ... Kod:

Âuvy¹Nè.lil}?

Wykorzystuje kodowanie CP-1252 . Wypróbuj online! .

Adnan
źródło
S.l_v¹lRNèyiu}?jest 1 bajt krótszy
Emigna
@Emigna Wow dzięki! To bardzo sprytne.
Adnan
Âuvy¹Nè.lilë}?ma 14. Po prostu cieszę się, że mogę ci pomóc
choć
@Emigna That is amazing! Bardzo miłe użycie bifurkatu :).
Adnan
Ruvy¹Nè.lil}?tak właściwie. Nie użyłem rozwidlenia i zapomniałem usunąć pozostałe. Więc 13.
Emigna
4

MATL , 13 bajtów

PktGtk<)Xk5M(

Wypróbuj online!

Pk      % Implicit inpput. Flip, lowercase
t       % Duplicate
Gtk<    % Logical index of uppercase letters in the input string
)       % Get letters at those positions in the flipped string
Xk      % Make them uppercase
5M(     % Assign them to the indicated positions. Implicit display
Luis Mendo
źródło
3

J , 30 bajtów

(={"_1 toupper@]|.@,.])tolower

Nie obsługuje innych niż ASCII

mile
źródło
„toupper” „tolower” czy nie możesz użyć punktów kodowych, aby go skrócić?
Leaky Nun
@LeakyNun Może, ale tak naprawdę nie mogę powiedzieć na pewno
mile
3

Brachylog , 28 bajtów

@lr:?z:1ac.
h@u.,@A@um~t?|h.

Wyjaśnienie

  • Główny predykat:

    @lr                 Reverse the lowercase version of the Input
       :?z              Zip that reversed string with the Input
          :1a           Apply predicate 1 to each couple [char i of reverse, char i of Input]
             c.         Output is the concatenation of the result
    
  • Predykat 1:

    h@u.,               Output is the uppercase version of the first char of Input
         @A@um~t?       The second char of Input is an uppercase letter
                 |      Or
                  h.    Output is the first char of Input
    
Fatalizować
źródło
3

TSQL, 175 bajtów

Gra w golfa:

DECLARE @ varchar(99)='Hello, Midnightas'

,@o varchar(99)='',@i INT=0WHILE @i<LEN(@)SELECT
@i+=1,@o+=IIF(ascii(x)=ascii(lower(x)),lower(y),upper(y))FROM(SELECT
SUBSTRING(@,@i+1,1)x,SUBSTRING(@,len(@)-@i,1)y)z
PRINT @o

Nie golfił

DECLARE @ varchar(99)='Hello, Midnightas'

,@o varchar(99)=''
,@i INT=0

WHILE @i<LEN(@)
  SELECT @i+=1,@o+=IIF(ascii(x)=ascii(lower(x)),lower(y),upper(y))
  FROM
    (SELECT SUBSTRING(@,@i+1,1)x,SUBSTRING(@,len(@)-@i,1)y)z

PRINT @o

Skrzypce

t-clausen.dk
źródło
zakodować wejście?
kot
@cat to jedyny sposób. W sql nie ma STDIN ani polecenia wejściowego. Jeśli spojrzysz na stackoverflow, w ten sposób rozwiązane są wszystkie pytania - możesz również spojrzeć na moje inne odpowiedzi na codegolf
t-clausen.dk
Och, tak, zdecydowanie pamiętam wcześniejszą rozmowę z użytkownikiem SQL (może ty). To dziwne, ale powinno być w porządku.
kot
1
@cat Nie rozmawialiśmy wcześniej, ale
pomogłeś
3

Właściwie 25 bajtów

;`úíuY"ùû"E£`M@ùRZ`i@ƒ`MΣ

Wypróbuj online!

Wyjaśnienie:

;`úíuY"ùû"E£`M@ùRZ`i@ƒ`MΣ
;                          create a copy of the input
 `úíuY"ùû"E£`M             for each character in input:
  úíuY                       0-based index in lowercase English letters, or -1 if not found, increment, boolean negate (1 if uppercase else 0)
      "ùû"E£                 `û` if the character is lowercase else `ù` (str.lower vs str.upper)
              @ùRZ         make the other copy of the input lowercase, reverse it, and zip it with the map result
                  `i@ƒ`M   for each (string, function) pair:
                   i@ƒ       flatten, swap, apply (apply the function to the string)
                        Σ  concatenate the strings
Mego
źródło
3

Haskell, 83 80 75 71 bajtów

Najprostszy sposób, jaki mogłem wymyślić.

import Data.Char
f a|isUpper a=toUpper|1>0=toLower
zipWith f<*>reverse
wada
źródło
Jeśli zamienisz parametry (#), kmożesz przepisać w stylu bez punktów k=reverse>>=zipWith(#)
:,
Druga linia może być wolna od punktów, bponieważ jest f a|isUpper a=toUpper|1>0=toLowerto sprzeczne z poprawą Flonka.
xnor
Możesz użyć wersji fxnora i przepisać Flonka kna zipWith f<*>reverse.
nimi
Nie musisz eliminować parametru s?
Lynn
Tak, a także możesz wyciąć k=.
xnor
3

PowerShell, 154 , 152 , 99 , 86 bajtów

Dzię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:

param($a)-join($a[$a.length..0]|%{("$_".ToLower(),"$_".ToUpper())[$a[$i++]-in65..90]})

Oryginalny:

param($a);$x=0;(($a[-1..-$a.length])|%{$_=$_.tostring().tolower();if([regex]::matches($a,"[A-Z]").index-contains$x){$_.toupper()}else{$_};$x++})-join''

Normalne formatowanie:

Najnowsze (moim zdaniem najlepiej jak dwie linie):

param($a)
-join($a[$a.length..0] | %{("$_".ToLower(), "$_".ToUpper())[$a[$i++] -in 65..90]})

Wyjaśnienie:

param($a)-join($a[$a.length..0]|%{("$_".ToLower(),"$_".ToUpper())[$a[$i++]-in65..90]})
param($a)
# Sets the first passed parameter to variable $a
         -join(                                                                      )
# Converts a char array to a string
               $a[$a.length..0]
# Reverses $a as a char array
                               |%{                                                  }
# Shorthand pipe to foreach loop
                                  ("$_".ToLower(),"$_".ToUpper())
# Creates an array of the looped char in lower and upper cases
                                                                 [$a[$i++]-in65..90]
# Resolves to 1 if the current index of $a is upper, which would output "$_".ToUpper() which is index 1 of the previous array

Oryginalny:

param($a)
$x = 0
(($a[-1..-$a.length]) | %{
    $_ = $_.tostring().tolower()
    if([regex]::matches($a,"[A-Z]").index -contains $x){
            $_.toupper()
        }else{
            $_
        }
        $x++
    }
) -join ''

Pierwszy plakat tutaj był motywowany, ponieważ rzadko widzę PowerShell, ale przy 154 152 bajtach na tym ... Rozumiem dlaczego! Wszelkie sugestie mile widziane.

Nauczyłem się, że muszę całkowicie zmienić sposób myślenia na golfa w kodzie i jego zabawie!

ThePoShWolf
źródło
Witaj i witaj w PPCG! To jest świetne!
NoOneIsHere
Witamy w PPCG! Miło widzieć tutaj innego użytkownika PowerShell. Możesz wyciąć całkiem sporo, zastępując .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()}}).
AdmBorkBork
Znakomity! Możemy to jeszcze skrócić, używając zakresu zamiast -le i -ge:param($a)-join($a[$a.length..0]|%{if(65..90-contains$a[$i++]){"$_".ToUpper()}else{"$_".ToLower()}})
ThePoShWolf
X-inYjest krótszy niż Y-containsX, można zmienić ifdla operatora fałszywe potrójnego uzyskać 86 bajtów -param($a)-join($a[$a.length..0]|%{("$_".ToLower(),"$_".ToUpper())[$a[$i++]-in65..90]})
TessellatingHeckler
Człowieku, czuję, że przegapiłem wiele lew, które nigdy wcześniej nie grały w golfa. To prawie jak nauka kodowania od nowa!
ThePoShWolf
2

Dyalog APL , 12 bajtów

⌽f¨⍨⊢≠f←819⌶

819⌶ to funkcja składania skrzynek

f←ponieważ jego nazwa jest długa, przypisujemy ją do f

⊢≠f Boolean, w którym tekst różni się od tekstu pisanego małymi literami

f¨⍨ użyj tego (1 oznacza wielkie litery, 0 oznacza małe litery), aby złożyć każdą literę ...

... odwróconego tekstu

Obsługuje non-ASCII zgodnie z zasadami konsorcjum Unicode.

Adám
źródło
2

Rakieta, 146 bajtów

(λ(s)(build-string(string-length s)(λ(n)((if(char-upper-case?(string-ref s n))char-upcase char-downcase)(list-ref(reverse(string->list s))n)))))

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.

Steven H.
źródło
2

Jolf, 21 bajtów

Wypróbuj tutaj!

Μid?&γ._pXiS=pxHHpxγγ

Wyjaśnienie

Μid?&γ._pXiS=pxHHpxγγ
Μid                   (Μ)ap (i)nput with (d)is fucntion:
   ?        =pxHH     (H is current element) if H = lowercase(H)
    &γ._pXiS          and set γ to the uppercase entity in the reversed string
                 pxγ  lowercase γ
                    γ else, return γ
Conor O'Brien
źródło
(d)is function... Poświęć pisownię dla golfa!
Steven H.,
2

Perl 6 , 29 bajtów

$_=get;put .flip.samecase($_)
Brad Gilbert b2gills
źródło
2

C #, 86 85 bajtów

s=>string.Concat(s.Reverse().Select((c,i)=>s[i]>96?char.ToLower(c):char.ToUpper(c)));

AC # 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)do c+32. Mam nadzieję to naprawić!

12 bajtów zapisanych dzięki @PeterTaylor ( c|32aby dodać 32 do wartości ascii ci c&~32odjąć 32). Wynik wynosiłby 72 bajty (ale może się nie powieść w przypadku znaków innych niż alfa).

s=>string.Join("",s.Reverse().Select((c,i)=>(char)(s[i]>96?c|32:c&~32)));
aloisdg mówi Przywróć Monikę
źródło
1
Byłoby to c|32zamiast c+32, ale nie będzie działać ze znakami innymi niż alfa.
Peter Taylor,
@PeterTaylor Działa świetnie! Dziękuję Ci!
aloisdg mówi Przywróć Monikę
1

PHP, 128 bajtów

$s=$argv[1];$l=strrev($s);for($i=0;$i<strlen($s);++$i){echo(strtolower($s[$i])!==$s[$i]?strtoupper($l[$i]):strtolower($l[$i]));}

Mogę spróbować dalej to zoptymalizować, ale zostawię to na razie.

MonkeyZeus
źródło
1

Oktawa, 51 50 bajtów

@(s)merge(isupper(s),b=flip(toupper(s)),tolower(b))

@(s)merge(s>64&s<91,b=flip(toupper(s)),tolower(b))
Marco
źródło
1

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óż ...

vim -es '+normal! g~G' '+%print|q!' /dev/stdin

Aby to przetestować, uruchom

echo "testString" | vim -es '+normal! g~G' '+%print|q!' /dev/stdin

To jest moje pierwsze zgłoszenie tutaj, nie jestem pewien, czy tego rodzaju zgłoszenie jest dopuszczalne.

DoYouEvenCodeBro
źródło
Fajnie, uwielbiam grać w golfa w vimie! Jednak ten program w rzeczywistości nie odwraca ciągu, po prostu przełącza wielkie litery. Możesz odwrócić ciąg za pomocą, :se ri<cr>C<C-r>"ale wtedy musisz wymyślić, jak wpisać wielkie litery.
DJMcMayhem
@DrGreenEggsandIronMan O rany, zupełnie za tym tęskniłem! Wróć do deski kreślarskiej!
DoYouEvenCodeBro
1

JavaScript (przy użyciu zewnętrznej biblioteki) (224 bajty)

(s)=>{t=_.From(s);var cnt=t.Count();var caps=t.Select(x=>{return x.toUpperCase()===x&&x.toLowerCase()!==x}).ToArray(),i=-1;return t.AggregateRight((a,b)=>{i++;var c=caps[i];return c?a+b.toUpperCase():a+b.toLowerCase()},"");}

Oświadczenie: Używając biblioteki, którą napisałem, aby przenieść LINQ C # do Javascript

Zdjęcie 1

applejacks01
źródło
Zawołanie osoby, która głosowała za tym bez wyjaśnienia. Jest jakiś powód?
applejacks01
Prawdopodobnie chcieli, abyś również policzył bibliotekę, chociaż korzystanie z biblioteki zewnętrznej jest całkowicie w granicach standardowych zasad.
Addison Crump,
1
Nie jestem zwolennikiem, ale jeśli korzystasz z biblioteki zewnętrznej, przynajmniej podaj nazwę w swojej odpowiedzi, a dla niejasnej biblioteki, podaj link do repozytorium.
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨d̷̰̀ĥ̷̳
1

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:

s/[A-Z]/\a\l&/g;s/^.*$/\f&\v/;:x;s/\f\a/\a\f/;s/\a\v/\v\a/;s/\f(.)(.*)(.)\v/\3\f\2\v\1/;tx;s/\f|\v//g;s/\a./\U&/g

Nie golfowany:

s/[A-Z]/\a\l&/g #Prepend all upper-case letters with a 
                #BEL ASCII character and make them lowercase
s/^.*$/\f&\v/   #Wrap text between a from feed (\f) and a vertical tab (\v)
                #These are used as markers

:x #Define a label named x

s/\f\a/\a\f/;s/\a\v/\v\a/ #Move BEL characters outside of the boundary, so they're not moved later
s/\f(.)(.*)(.)\v/\3\2\1/  #This part does the switching itself
                          #It grabs a character preceded by a form feed and another 
                          #one followed by a vertical tab and swaps them, while keeping the text in-between
                          #and replaces the marker \f and \v

tx             #Conditional jump (t) to label x
               #Jumps to the label x if the last substitution (s command) was successful 
s/\f|\v//g     #Delete markers
s/\a(.)/\u\1/g #Make letters preceded by a BEL upper-case
someonewppc
źródło
1

Java 7, 221 217 180 bajtów

void c(char[]s){int x=0,y=s.length-1;for(char t;x<y;s[x]=s(t,s[y]),s[y]=s(s[y],t),x++,y--)t=s[x];}char s(char a,char b){return(char)(64<a&a<91?96<b&b<123?b-32:b:64<b&b<91?b+32:b);}

Mnóstwo bajtów zaoszczędzonych dzięki podejściu @LeakuNun .

Przypadki bez golfa i testy:

Wypróbuj tutaj.

class Main{
  void c(char[] s){
    int x = 0,
        y = s.length-1;
    for(char t; x < y; s[x] = s(t, s[y]),
                       s[y] = s(s[y], t),
                       x++,
                       y--){
       t = s[x];
    }
  }

  char s(char a, char b){
    return (char)(64 < a & a < 91
                    ? 96 < b & b < 123
                        ? b-32
                        : b
                    : 64 < b & b < 91
                        ? b+32
                        : b);
  }

  public static void main(String[] a){
    print("Hello, Midnightas");
    print("TEST");
    print("test");
    print("Test");
    print(".,..,,!@");
    print("ABCDefgHijklMNOPqrsTuVWxyz");
    print("AbCdEfGHIJKlmnop123");
  }

  static void print(String s){
    char[] t = s.toCharArray();
    c(t);
    System.out.println(t);
  }
}

Wydajność:

SathginDim ,olleh
q.
TSET
tset
Tset
@!,,..,.
ZYXWvutSrqpoNMLKjihGfEDcba
321pOnMLKJIhgfedcba
Kevin Cruijssen
źródło
Możesz wprowadzać i wyprowadzać char[].
Leaky Nun
@LeakyNun Właściwie to (nie wierzę) nie mogę w mniejszej ilości bajtów. Umożliwiłoby to usunięcie String a="";i zmianę o+=na 0[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, że char[]praca będzie mniejsza.
Kevin Cruijssen
1
180 bajtów, które można jeszcze zagrać w golfa (nie modyfikując go na miejscu).
Leaky Nun
0

do

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[])
{
  char *a,*b,*c;

  a=c=strdup(argv[1]);
  b=&argv[1][strlen(a)-1];
  for(;*a;a++,b--){
    *a=(*a>='A'&&*a<='Z')?((*b>='a'&&*b<='z')?*b-32:*b):((*b>='A'&&*b<='Z')?*b+32:*b);
  }
  puts(c);
  free(c);
  return 0;
}
użytkownik56095
źródło
Dane wejściowe należy pobierać ze standardowego wejścia.
Anmol Singh Jaggi
Ponieważ jest to kod-golf, proszę podać liczbę bajtów, jaką ten program będzie kosztował.
Mogłem to znacznie zmniejszyć w zależności od zasad, ale nie mogę znaleźć żadnych zasad.
user56095,