Büyük harfleri aynı yerlerde tutarken bir dizgiyi ters


28

Buradaki amaç, sadece bir bükülme ile bir ipi ters çevirmektir: Büyük
harfleri aynı yerlerde tutun.

Örnek Giriş 1: Hello, Midnightas
Örnek Çıkış 1:SathginDim ,olleh

Örnek Giriş 2: Örnek .Q
Çıkış 2:q.

Kurallar :

  • STDOUT'ya çıkış, STDIN'den giriş
  • Kazanan 13 Temmuz’da GMT + 3 12:00 'da seçilecek (Bir hafta)
  • Giriş yalnızca ASCII sembollerinden oluşabilir ve ASCII olmayan karakterler içeren herhangi bir kodlama kullanmayan programları kolaylaştırır.
  • Büyük harfli bir pozisyonda biten herhangi bir noktalama ihmal edilmelidir.

Üst baskı ile mi yoksa baskısız mı? Dize olan veya olmayan olan mı?

“Büyük harfli bir pozisyonda biten herhangi bir noktalama ihmal edilmelidir.” , ikinci örnek bu kuralla uyuşmuyor mu?
Stefano Sanfilippo

Noktalama işaretlerinin büyük harf değişimi olmadığı için kuralla tutarlıdır.

Yanıtlar:


7

TCC - 4 bayt

<>ci

Çevrimiçi deneyin!

Açıklama:

     - output is implicit in TCC
<>   - reverse string
  c  - preserve capitalization
   i - get input

9
Bu tcc.lua, zorlukların yayınlanmasından önceki bir sürümü ile mi işe yaradı? Kısa süre önce diğer üç sorunu çözmek için komutlar eklediğinize göre, yapmadığını farz ediyorum. Cevabınız, meydan okumayı yayınlayan bir dilin bir versiyonunu gerektiriyorsa, onu başlıkta rekabet etmeyen olarak etiketlemelisiniz . Etiket eklediğinizde veya kodunuzun daha eski bir sürümde çalıştığına dair kanıt sağladığınızda notumu kaldıracağım.
Dennis,

16

Python, 71 bayt

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

Çevrimiçi deneyin

Ruud'dan -3 bayt, ayrıca 2 daha fazlası için ilham kaynağı.

FryAmTheEggman'dan -4 bayt daha


lambda s:''.join([z.lower(),z.upper()][c.isupper()]for c,z in zip(s,s[::-1]))üç bayt daha kısa
Arfie

1
@Ruud Teşekkürler! İşlev çağrısının liste seçiminin dışına taşınması 2 tane daha tasarruf sağlar!
Mego

2
(z*2).title()[c.isupper()-1]çalışmalı.
FryAmTheEggman

6
Sen başka byte kazanabileceğini ~c.isupper()yerinec.isupper()-1
Lulhum

Bu stdin'den veya çıktıdan stdout'a girdi alamıyor ...
ArtOfWarfare

13

Python 2,73 bayt

Kurallar girdiyi belirlediğinden ascii:

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

Bütün krediler @Mego'ya gidiyor, ama cevabını yorumlayacak kadar itibarı yoktu.


2 bayt kazanmak için '@' ve '[' ascii değerlerini kullanabilir misiniz?
aloisdg diyor Reinstate Monica

Ne yazık ki hayır, ord (c) kullanmak zorunda kalacağım, tamsayı ve string karşılaştırması Python
Lulhum'da

Neye sahip oldum, ama sen ilk + 1
orlp

13

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

Bu çözüm @Ton Hospel'den (13 bayt kısa thant mine).

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

Fakat ihtiyacınız olacak lve paçılacaksınız. Çalıştırmak için:

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

5
Merhaba, PPCG'ye hoş geldiniz! Bu harika!
NoOneIsHere

Gerçekten çok iyi! -aAutosplit'i hiç kullanmadım , geçmişte bunu defalarca kullanabileceğimi hissediyorum! Bunu hatırlamaya ihtiyacım var! Sanırım başlangıçta olduğu gibi kullanarak map...,...yerine başka bir bayt kaydedebilirsiniz ! :)map{...}...$F
Dom Hastings

Kısa kod (31 + 2 bayt):perl -lpe 's%.%(lc$&gt$&?u:l)."c chop"%eeg
Ton Hospel

-aTarafından bildirilen bildirim-F
Ton Hospel

@TonHospel vay, çok teşekkür ederim ve aferin, bu oldukça güzel bir kod! Hakkında -a(ve -n) ima edildi -F, bir süre önce perlrun hakkında okudum, denedim, ama işe yaramadı; ama şimdi tekrar denedim ve gayet iyi çalışıyor bu yüzden yanlış bir şey yaptığımı tahmin ediyorum. Teşekkürler.
Dada

9

Pyth, 13 11 10 9 bayt

Beni hatırlattığı için @ VFryAmTheEggman'a ve başka bir bayt için @LeakyNun'a teşekkür ederiz .

srV_Qm!/G

Çevrimiçi deneyin! şimdi cep telefonunda, bağlantı biraz güncelleniyor


srV_Qm!rId011
yaşında

@FryAmTheEggman Çıkarın dve bir bayt kaydedin .
Leaky Nun

srV_Qm!/Gbir bayt kurtarmalı
Leaky Nun

8

Python, 66 bayt

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

iKarakteri s[~i]arkadan s[i], önden durumdan alarak endeksler üzerinden alıştırır . Sermaye olmak bitişik aralıkta yatar olarak kontrol edilir @ABC...XYZ[. Numaradan FryAmTheEggman'a teşekkür et (_*2).title().


5

Retina , 75 67 65 bayt

Bayt sayısı, ISO 8859-1 kodlamasını varsayar.

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

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

±(.)
$1±
·.
·

Çevrimiçi deneyin! (İlk satır, birden fazla satır besleme ile ayrılmış test durumları içeren bir test paketi sağlar.)


5

JavaScript (ES6), 95 83 bayt

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

Düzenleme: @ edc65 sayesinde büyük bir 12 bayt kaydedildi.


.. s => r = [... l = s.toLowerCase ()] (ters) bir haritada ((C, ı) => s [i] = L [i] c.toUpperCase ():? c) .join` -10
edc65

@ edc65 Teşekkürler! (Not: r=Gereksiz.)
Neil

5

Pyke, 11 10 9 bayt

_FQo@UhAl

Burada dene!

_         -   reversed(input)
 F        -  for i in ^
   o      -      o+=1
  Q @     -     input[^]
     Uh   -    ^.is_upper()+1
       Al -   [len, str.lower, str.upper, ...][^](i)
          - "".join(^)

Önce bana bir hata verdi, sonra aynı zamanda doğru cevabı verdi. i.imgur.com/uTcH27F.png

Bu her zaman olur, kapatmak için uyarıları devre dışı bırak seçeneğine tıklayabilirsiniz.
Mavi,

Aha tamam. Üzgünüz, Pyke ile iyi değilim

Belki onu kullanan tek kişi benim olduğum için
Blue

4

05AB1E , 19 16 15 13 bayt

3 bayt kaydettiğiniz için Emigna'ya teşekkürler !

Muhtemelen Jelly tarafından yenilecek ... Kod:

Âuvy¹Nè.lil}?

CP-1252 kodlamasını kullanır . Çevrimiçi deneyin! .


S.l_v¹lRNèyiu}?1 byte daha kısa
Emigna

@Emigna Wow teşekkürler! Bu çok zekice.
Adnan,

Âuvy¹Nè.lilë}?
14:14

@Emigna Bu şaşırtıcı! Bikfuratın çok iyi kullanımı :).
Adnan,

Ruvy¹Nè.lil}?aslında. Çatallanma kullanmıyorum ve diğerini çıkarmayı unuttum. 13.
Emigna,

4

MATL , 13 bayt

PktGtk<)Xk5M(

Çevrimiçi deneyin!

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

3

J , 30 bayt

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

ASCII olmayanları desteklemiyor


"toupper" "tolower" kısaltmak için kod noktaları kullanamaz mısın?
Leaky Nun

@LeakyNun Belki ama gerçekten kesin olarak söyleyemem
mil

3

Brachylog , 28 bayt

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

açıklama

  • Ana Tahmini:

    @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
    
  • Tahmin 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
    

3

TSQL, 175 bayt

golfed:

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

Ungolfed

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

Keman


girdiyi kodlama
Kedi,

@ cat bu tek yoldur. Sql'de STDIN veya input komutu yoktur. Stackoverflow'a bakarsanız tüm soruların nasıl çözüldüğünü görebilirsiniz
codegolf hakkındaki

Evet, daha önce bir SQL kullanıcısı ile olan bu konuşmayı kesinlikle hatırlıyorum (belki de). Bu garip, ama iyi olmalı.
kedi,

1
@ catcat bu konuşmayı daha önce yapmadık, ama daha önce bir bayt sayımı ile bana yardım ettin
t-clausen.dk

3

Aslında, 25 bayt

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

Çevrimiçi deneyin!

Açıklama:

;`úí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

3

Haskell, 83 80 75 71 bayt

Aklıma gelen en basit yol.

import Data.Char
f a|isUpper a=toUpper|1>0=toLower
zipWith f<*>reverse

Eğer parametrelerini takas olursa (#), knokta içermeyen bir tarzda tekrar yazılabilir: k=reverse>>=zipWith(#)bu :) birkaç bayt kaydeder
Flonk

İkinci satır, Flonk'in gelişmesiyle çelişen olsa bda f a|isUpper a=toUpper|1>0=toLower, noktadan arınmış olabilir .
xnor

Sen XNOR versiyonlarını kullanabilirsiniz fve Flonk en yeniden yazmak kiçin zipWith f<*>reverse.
nimi

Parametreyi ortadan kaldırmanıza gerek yok smu?
Lynn,

Evet, ayrıca kesmenize de izin verilir k=.
xnor

3

PowerShell, 154 , 152 , 99 , 86 bayt

Beni bir kuyruklu 47 byte'a kaydettiğin için teşekkür ederim @TimmyD (ayrıca 6 ekledim)

13 bayttan daha fazla tasarruf için @TessellatingHeckler teşekkür ederiz.

Son:

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

Orijinal:

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

Normal biçimlendirme:

Son (bence en iyi iki satır gibi görünüyor):

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

Açıklama:

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

Orijinal:

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

Buradaki ilk poster motive edildi çünkü PowerShell'i nadiren görüyorum, ancak bunun üzerine 154 152 baytta ... Nedenini görebiliyorum! Herhangi bir öneriniz takdir etti.

Kodlama ve eğlenceyle golf oynama biçimimi tamamen değiştirmem gerektiğini öğrendim!


Merhaba, PPCG'ye hoş geldiniz! Bu harika!
NoOneIsHere

PPCG'ye Hoşgeldiniz! Buralarda başka bir PowerShell kullanıcısı görmek güzel. .tostring()Alıntıları değiştirerek ve regex yerine ASCII tamsayı manipülasyonunu kullanarak biraz kesebilirsiniz . Aşağıdakileri deneyin, 105 bayt - param($a)-join($a[$a.length..0]|%{if(($x=$a[$i++])-le90-and$x-ge65){"$_".ToUpper()}else{"$_".ToLower()}}).
AdmBorkBork,

Parlak! -Le ve -ge yerine bir aralık kullanarak bunu daha da kısaltabiliriz:param($a)-join($a[$a.length..0]|%{if(65..90-contains$a[$i++]){"$_".ToUpper()}else{"$_".ToLower()}})
ThePoShWolf

X-inYkısadır Y-containsXve siz değiştirebilirsiniz ifiçin sahte üçlü operatörü almak için 86 bayt -param($a)-join($a[$a.length..0]|%{("$_".ToLower(),"$_".ToUpper())[$a[$i++]-in65..90]})
TessellatingHeckler

Dostum, daha önce hiç golf oynamamış bir sürü numarayı kaçırdığımı hissediyorum. Neredeyse her yerde tekrar kodlamayı öğrenmek gibi!
ThePoShWolf

2

Dyalog APL , 12 bayt

⌽f¨⍨⊢≠f←819⌶

819⌶ durum katlama işlevi

f←çünkü adı uzun, f

⊢≠f Metnin alt kasalı metinden farklı olduğu Boole

f¨⍨ her harfi katlamak için (1, büyük harf, 0 küçük harf anlamına gelir) kullanın ...

... ters çevrilmiş metnin

ASCII olmayanları Unicode Konsorsiyumu kurallarına göre kullanır.



2

Raket, 146 bayt

(λ(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)))))

Bu "golf" olayında raket kötüdür.

Shrug Her zaman olduğu gibi, bunu kısaltmak için herhangi bir yardım çok takdir edilecektir.



2

Jolf, 21 bayt

Burada dene!

Μid?&γ._pXiS=pxHHpxγγ

açıklama

Μ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 γ

(d)is function... Golf uğruna heceleme yazımı!
Steven H.


2

C #, 86 85 bayt

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

AC # lambda giriş ve çıkış bir dizedir. NetFiddle'da deneyebilirsiniz .


Ben dönüştürmek için elde olamaz anlamak mücadele ediyorum char.ToLower(c)için c+32. Düzeltmeyi umuyorum!

@PeterTaylor sayesinde 12 bayt kaydedildi ( c|32ascii değerine 32 cve alt c&~32çıkarma 32'ye 32 eklemek için ). Sonuç, 72 bayt olur (ancak alfa karakterlerinde başarısız olabilir).

s=>string.Join("",s.Reverse().Select((c,i)=>(char)(s[i]>96?c|32:c&~32)));

1
Bunun c|32yerine olur c+32, ancak alfa olmayan karakterlerle çalışmaz.
Peter Taylor,

@PeterTaylor Harika çalışıyor! Teşekkür ederim!
aloisdg diyor Reinstate Monica

1

PHP, 128 bayt

$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]));}

Bunu daha da iyileştirmeye çalışabilirim, ancak şimdilik olduğu gibi bırakacağım.


1

Octave, 51 50 bayt

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

@(s)merge(s>64&s<91,b=flip(toupper(s)),tolower(b))

1

VIM, 46 bayt

g~GEğer stdin'den okumaya ya da stdout'a yazma ihtiyacımız olmasaydı üç bayt olurdu, ama ah peki ...

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

Bunu test etmek için koş

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

Bu benim ilk gönderim, bu tür bir gönderimin kabul edilebilir olup olmadığından emin değilim.


Güzel, vim golf oynamayı seviyorum! Ancak, bu program aslında dizgeyi tersine çevirmez, sadece büyük harfleri değiştirir. Dizeyi ile ters çevirebilirsiniz :se ri<cr>C<C-r>"ancak doğru harflerin nasıl büyük harf kullanılacağını bulmanız gerekir.
DJMcMayhem

@DrGreenEggsandIronMan Oh adamım, bunu tamamen özledim! Çizim tahtasına geri dönelim!
DoYouEvenCodeBro

1

Javascript (harici kütüphaneyi kullanarak) (224 bayt)

(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()},"");}

Feragatname: C # 'nin LINQ'sini Javascript'e getirmek için yazdığım bir kütüphaneyi kullanarak

Resim 1


Bunu açıklamayan kişiyi açıklamadan çağırmak. Bunun için herhangi bir sebep var mı?
applejacks01,

Harici bir kütüphane kullanmak tamamen standart politikanın sınırları dahilinde olmasına rağmen, siz de kütüphaneyi saymanızı istediler.
Addison Crump

1
Seçmen değilim, ancak harici bir kütüphane kullanıyorsanız, en azından cevabınızdaki adı belirtin ve belirsiz bir kütüphane için lütfen depoya bir bağlantı verin.
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

1

Sed, 113 + 1 = 114 bayt

Niye ya? Çünkü bir şeyler yapmak için yanlış aracı kullanmak eğlencelidir : P

Kullanım: Çalıştır sed -rf file, metni girin ve Ctrl+ D(EOF gönder) tuşuna basın .

golfed:

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

Ungolfed:

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

1

Java 7, 221 217 180 bayt

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

@ LeakuNun yaklaşımı sayesinde bir sürü bayt kurtarıldı .

Ungolfed ve test durumları:

Burada dene.

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

Çıktı:

SathginDim ,olleh
q.
TSET
tset
Tset
@!,,..,.
ZYXWvutSrqpoNMLKjihGfEDcba
321pOnMLKJIhgfedcba

Giriş ve çıkış yapabilirsiniz char[].
Leaky Nun

@ LeakyNun Aslında ben (inanıyorum) daha az bayt olamaz. Bu, baytları kurtarmak için kaldırılmasını String a="";ve değiştirilmesini o+=sağlar 0[i]=, ancak Java'da bir karakter .toUpperCase()/ .toLowerCase()yöntem yoktur ve karakterden String'e dönüştürülür, üst / alt yöntem kullanılır ve sonra tekrar char'e geri dönülür (çok daha fazla). bayt. Ancak bağlantılı ideonayı çatallamaktan çekinmeyin ve char[]daha az baytta çalışmak için bir şeyler bulmaktan çekinmeyin .
Kevin Cruijssen

1
Daha fazla golf oynanabilen 180 bayt (yerinde değiştirilmeden).
Leaky Nun

0

C

#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;
}

Giriş stdin'den alınmalıdır.
Anmol Singh Jaggi,

Bu kod-golf olduğundan, lütfen bu programın mal olacağı bayt sayısını girin.

Kuralları kurallara bağlı olarak önemli ölçüde azaltabilirim ama hiçbir kural bulamıyorum.
user56095 13:16
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.