Bazı “deciph4r4ng” yapalım


58

Bu zorlukta, göreviniz bir dizgeyi çözmek. Neyse ki, algoritma oldukça basittir: soldan sağa okuma, karşılaşılan her bir N (0 - 9) rakamı , N + 1 konumu olan karakterle değiştirilmelidir .

Örnek

Giriş dizesi "Prog2am0in6"şu şekilde çözülür:

örnek

Bu nedenle, beklenen çıktı "Programming".

Açıklamalar ve kurallar

  • Giriş dizesi, yalnızca 32 - 126 aralığında ASCII karakterlerini içerecektir. Asla boş olmayacağını varsayabilirsin.
  • Orijinal deşifre edilen dizenin herhangi bir rakam içermemesi garanti edilir.
  • Bir karakterin kodu çözüldükten sonra, sırayla sonraki bir basamağa referans gösterilebilir. Örneğin, "alp2c1"olarak çözülmelidir "alpaca".
  • Referanslar dizgenin etrafına asla sarılmaz: yalnızca önceki karakterlere referans verilebilir.
  • Tam bir program veya sonucu yazdıran veya çıkaran bir fonksiyon yazabilirsiniz.
  • Bu kod golf, yani bayt cinsinden en kısa cevap kazanır.
  • Standart boşluklar yasaktır.

Test durumları

Input : abcd
Output: abcd

Input : a000
Output: aaaa

Input : ban111
Output: banana

Input : Hel0o W2r5d!
Output: Hello World!

Input : this 222a19e52
Output: this is a test

Input : golfin5 3s24o0d4f3r3y3u
Output: golfing is good for you

Input : Prog2am0in6 Puz0les7&1Cod74G4lf
Output: Programming Puzzles & Code Golf

Input : Replicants 4re3lik448ny3oth8r5mac6in8.8T64y'r371it9376a1b5n1fit7or2a1h2z17d.
Output: Replicants are like any other machine. They're either a benefit or a hazard.

Girdiyi tek karakterli dizelerin bir dizisi olarak alabilir miyiz? Numaranın 9'dan büyük olmayacağını varsayabilir miyiz?
f Aprnɛtɪk

@ fəˈnɛtɪk Giriş formatı ile ilgili olarak: Diliniz için kabul edilebilir tek format bu değilse, hayır derim. Sayılardan ziyade tek rakamlarla uğraşıyoruz . Öyleyse evet: <= 9 olacağı garanti edilir ancak arka arkaya birkaç basamakla karşılaşabilirsiniz.
Arnauld,

1bbabGeçerli bir girdi mi (beklenen çıktıyla abbab)? Başka bir deyişle, referanslar dize dolanabilir mi?
Luke,

@Luke İyi nokta. Hayır, 1bbabgeçerli değil. Bununla ilgili bir açıklama ekledim.
Arnauld,

Yanıtlar:


11

Jöle , 9 7 bayt

~ịṭṭµ@/

Çevrimiçi deneyin!

Nasıl çalışır

~ịṭṭµ@/  Main link. Argument: s

    µ    Combine the four links to the left into a chain (arity unknown).
     @   Swap the chains arguments. This makes it dyadic.
      /  Reduce s by the chain with swapped arguments. It will be called with
         right argument r (the result of the previous call, initially the first 
         character) and left argument c (the next character of s).
~            Bitwise NOT of c. This maps a digit 'd' to ~d = -(d+1), but all 
             non-digit characters 'D' to 0.
  ṭ          Tack; append c to r.
 ị           Index; select the character of the result to the right at the
             index from the result to the left. Indexing is 1-based and modular,
             so 0 is the last character, -1 the second to last, etc.
   ṭ         Tack; append the resulting character to r.    

13

Java 7, 81 80 bayt

void a(char[]a){for(int i=0;++i<a.length;)if(a[i]>47&a[i]<58)a[i]=a[i-a[i]+47];}

Çevrimiçi deneyin!

Anders Tornblad sayesinde 1 bayt kaydedildi . İlk karakter bir rakam olamaz, bu nedenle kontrol edilmesine gerek yoktur; bu da sonlandırma koşulumuzu kontrol etmeden önce önden çekebileceğimiz anlamına gelir.


2
İlk karakter hiçbir zaman rakam içeremediğinden, onu kontrol etmeniz gerekmez. Bu nedenle, döngü for(int i=0;++i<a.length;){bir karakter kaydetme yerine olabilir .
Anders Tornblad

12

Haskell, 55 bayt

o#c|c>'/',c<':'=o!!read[c]:o|1<2=c:o
reverse.foldl(#)[]

Kullanım örneği: reverse.foldl(#)[] $ "Prog2am0in6 Puz0les7&1Cod74G4lf"-> "Programming Puzzles & Code Golf". Çevrimiçi deneyin!

Dizgiyi, karşılık gelen karakterlerle değiştirilen sayılarla ters kopyalayın. "reverse", çünkü bu şekilde rakamları indekslerken şimdiye kadar string'e kolay erişebiliyoruz. Tekrar ters çevirin.


1
Vay canına, bu kesin çözümü yazdım ama göndermekte yavaş kaldım :) Eh, en azından şimdi bunun iyi bir olduğunu biliyorum, +1
Leo

11

C, 46 bayt

f(char*s){for(;*s++;)*s=s[(*s-52)/6?0:47-*s];}

Çevrimiçi deneyin!


C,  52   49  48 bayt

Bir bayt tasarrufu için @ l4m2 teşekkürler!

f(char*s){for(;*s++;)*s>47&*s<58?*s=s[47-*s]:0;}

Giriş dizesini doğrudan düzenler.

Çevrimiçi deneyin!

Alternatif 50 bayt sürüm:

f(char*s){for(;*s++;)*s=abs(*s-57)>9?*s:s[47-*s];}

Özyinelemeli sürümü, 48 bayt:

f(char*s){*s>47&*s<58?*s=s[47-*s]:0;*s++&&f(s);}

9

05AB1E , 11 bayt

vydiÂyèëy}J

Çevrimiçi deneyin!

açıklama

v            # for each character y in input
 ydi         # if y is a digit
    Â        #    push a reversed copy of the string we've built up so far
     yè      #    push the character at index y in the reversed string
       ë     # else
        y    #    push y
         }   # end if
          J  # join stack to a single string
             # output top of the stack at the end of the loop

Başlamadan önce daha sık cevaplayıp cevaplamadığınızı kontrol etmem gerekiyor.
Magic Octopus Urn,

@carusocomputing: Hala benim kullandığımdan daha iyi bir numara düşünebilirsin;)
Emigna

7

JavaScript (ES6), 59 53 bayt

f=x=>/\d/.test(x)?f(x.replace(/\d/,(m,o)=>x[o+~m])):x

Fəˈnɛtɪk sayesinde 7 byte kurtarıldı.

f=x=>/\d/.test(x)?f(x.replace(/\d/,(m,o)=>x[o+~m])):x

console.log(f("Prog2am0in6"));
console.log(f("abcd"));
console.log(f("a000"));
console.log(f("ban111"));
console.log(f("Hel0o W2r5d!"));
console.log(f("this 222a19e52"));
console.log(f("golfin5 3s24o0d4f3r3y3u"));
console.log(f("Prog2am0in6 Puz0les7&1Cod74G4lf"));
console.log(f("Replicants 4re3lik448ny3oth8r5mac6in8.8T64y'r371it9376a1b5n1fit7or2a1h2z17d."));


.charAt (...), 7 baytlık tasarruf için [...] ile değiştirilebilir
f Aprnɛtɪk

x.charAt (...), [[]] eşdeğerdir
fəˈnɛtɪk

@ fəˈnɛtɪk Yep, daha önce denedim sandım ama bir hata attı. Teşekkürler!
Tom,

1
o-m-1ile değiştirilebilir o+~m.
Neil,

2
F yinelemeli olarak adlandırıldığından, programın karakter sayısının f=kısmı içermesi gerekir , bu yüzden bu 52 değil, 54 bayttır.
user5090812

5

Retina , 37 bayt

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

\d
$*«»
r1+`(?<=(.)(?<-2>.)*)(«)*»
$1

Çevrimiçi deneyin!

açıklama

\d
$*«»

Her basamağı d , d « s, ardından bir rakamla değiştirin ». Sonuncusu a) 'nın d = 0 ve b)' nin bitişik basamaklar arasında bir ayırıcı olarak konumlarını tanımlayabilmemiz gerekir .

r1+`(?<=(.)(?<-2>.)*)(«)*»
$1

Tekrar tekrar ( +) ilk satırdaki regex ile sağdan sola ( r) eşleştirin ve ardından en soldaki eşleştirmeyi ( 1) ikinci satırdaki yerine koyun.

Regex kendisi bizim şimdi tekli rakamlardan biriyle eşleşen ve sayar «grubunda olan ileriye dönük daha sonra maçları 2'de s d karakterleri (?<-2>.)*arasında anılan arası karakteri grubu 1. dize yakalamadan önce «s ve »daha sonra yakalanan karakteri ile değiştirilir .


5

MATL , 21 19 17 16 bayt

"@t4Y2m?UQ$y]]&h

MATL Online'da deneyin !

açıklama

        % Implicitly grab input as a string
"       % For each character in the input
  @     % Push that character to the stack
  t     % Make a copy of it
  4Y2   % Push the pre-defined array '0123456789' to the stack
  m     % Check if the current character is part of this array (a digit)
  ?     % If it is
    UQ  % Convert it to a number and add 1 (N)
    $y  % Make a copy of the element N-deep in the stack. MATL uses one-based indexing
        % So 1$y is the element at the top of the stack, 2$y is the next one down, etc.
  ]     % End of if statement
        % Non-digit characters remain on the stack as-is
]       % End of for loop
&h      % Horizontally concatenate the entire stack to form a string
        % Implicitly display the result

$yYeni sürümde güzel kullanım !
Luis Mendo

@LuisMendo Teşekkürler! Yea yığını tabanlı diller bu zorluk için çok uygun
Suever

@LuisMendo Ne yazık ki, Uyalnızca rakamlar için çalışıldığında daha da kısaltılmış olabilir . Ne yazık ki 'e'Ugetirileri exp(1)aksi takdirde 4Y2şeyler kurtulmak olabilirdi
Suever

Bu Octave şeylerinden bir diğeri ...
Luis Mendo

4

JavaScript (ES6), 51 bayt

f=
s=>s.replace(/\d/g,(c,i)=>a[i]=a[i+=~c]||s[i],a=[])
<input oninput=o.textContent=f(this.value)><pre id=o>

a diğer basamaklara atıfta bulunan rakamlarla başa çıkmak için değiştirilen rakamları saklamak için kullanılır.


`` `s => s.replace (a = / \ d / g, (c, i) => a [i] = a [i + = ~ c] || s [i])` `
l4m2

3

Perl 5 , 34 bayt

33 bayt kodu + -pbayrak.

s/\d/substr$_,-$&-1+pos,1/e&&redo

Çevrimiçi deneyin!

s/\d/.../e...Perl kodu olarak değerlendirilen ilk basamağı değiştirin . (ile ...olmak substr$_,-$&-1+pos,1bu durumda. substr$_,-$&-1+pos,1dizgeyle döner $_uzunluğunun 1endeksinde -$&-1+pos, $&sadece eşleşmiş sayıdır ve posmaçın başlamasından endeksidir. Biz sadece gereken redoher haneyi değiştirmek için başarılı oldu değiştirirseniz. (ve sonuç -pbayrak sayesinde örtük olarak basılmıştır ).


Eski yaklaşım, 47 bayt:

44 bayt kodu + -Fbayrak.

map{$F[$i]=$F[$i-$_-1]if/\d/;++$i}@F;print@F

Çevrimiçi deneyin!

Aslında dümdüz ileri. -Fflag, her karakterdeki girişleri içine böler @F. map{...}@Fyinelenir @F(örneğin, girişin her karakteri). Eğer karakter bir rakam ise ( /\d/), onu dizindeki karakter ile değiştiririz $i-$_-1. $i(Gördüğümüz her karakterde artırarak korumak) geçerli endeks değişkendir.


3

JavaScript ES6, 61 59 bayt

8 byte kapalı golf için teşekkürler @Luke

x=>[...x].map((p,i,a)=>a[i]=/\d/.test(p)?a[i-1-p]:p).join``

Çevrimiçi deneyin!


x.split``olabilir [...x], [0-9]olabilir \d, birlikte 6B tasarruf
Luke

Şu anda bir yerde bir hata var, o yüzden ilk önce bunu düzeltecek
fəˈnɛtɪk

x=>[...x].map((p,i,a)=>+p+1?a[i-1-p]:p).join``46 bayt için
Luke

Boşluklar başarısız "+", 0 değerini, önceki karakteri
almasına

x=>[...x].map((p,i,a)=>a[i]=1+p>9?a[i-1-p]:p).join``
l4m2

3

05AB1E , 27 17 bayt

vyDdiU)DRXèU`X}}J

Çevrimiçi deneyin!

vy             }  # For each character
  Dd              #   Push is_number
    i         }   #   If it is
     U            #     Save save it
      )DR         #     Wrap the (reversed) stack into an array
         Xè       #     Get the character at the saved index
           U`X    #     Flatten the whole stack
                J # Join 

2

CJam, 13 bayt

q{_A,s#)$\;}/

Çevrimiçi demo.

Bu çözüm CJam yerleşik "kopyasını kullanır n yığını üzerinde ıncı madde" operatörü $çözme uygulamaktır. Girdiyi (ile q) okuyarak ve sonra girdi dizgisindeki karakterlerin üzerinden geçirerek ve istifin üzerine (ile {}/) dökerek başlar . Bununla birlikte, ilmek gövdesinin içinde aynı zamanda istifin üzerine (ile _) konulduktan sonra her bir karakteri çoğaltır #ve dizede bulunduğu şekilde "0123456789"uygun şekilde gösterilen bir basamak olup olmadığını kontrol eder A,s.

Bu aramanın sonucu, basamağın sayısal değeridir veya karakter bir rakam değilse, -1. Ardından )operatör bu değeri birer birer artırır ve $bunu, yığının tepesinin altındaki birçok pozisyondaki karakter akımı ile değiştirir. Sonunda, artık gerek olmadığından \;, geçerli girdi karakterinin _yığınını yığından kaldırır .


2

Befunge-98 , 45 43 bayt

::::#@~\1p:1g::'9`!\'/`*j;'/--1g\1p\1g#;,1+

Çevrimiçi deneyin!

Fikir:

  1. Giriş dizesindeki her karakter için
    1. Satır 2'ye yaz
    2. Sayı değilse, sadece çıktısını alın
    3. Aksi takdirde, doğru değeri arayın, yeniden yazın, sonra çıktısını alın
::::            ; There's a counter on the stack, duplicate it 4 times  ;
    #@~         ; Get the next char of input, exiting if there is none  ;
       \1p      ; At the location (counter, 1), write the input char    ;
          :1g   ; Re-obtain the char. Stack is now [counter * 4, input] ;

::                ; Stack: [counter * 4, input * 3]      ;
  '9`!\'/`*       ; If !(input > '9') and (input > '/')  ;
                  ; IE If ('0' <= input && input <= '9') ;
           j;...; ; Then execute the ...                 ;

; Stack: [counter * 4, input] ;
; The ... branch:             ;

'/-             ; input -> int. (input -= '/')             ;
   -            ; counter - int(input) - 1                 ;
                ; Stack: [counter * 3, lookupPosition ]    ;
    1g          ; Get the char that we want to find        ;
      \1p\1g#   ; Overwrite the current char (not the old) ;

; Both branches: ;
,1+             ; Print the number and increment the counter ;

Bu sürümü daha kısa hale getiremedim, ancak bu 44 bayttır:

s #@~\3p:3g::'9`!\'/`*j;'/--3g#;:10g3p,1+:::

Düzgün numaradan dolayı paylaşacağımı düşünmüştüm s- ancak sayacı yığında depolamak 1 karakter iyileştirmesine yol açtı



2

Python 2, 75 71 bayt

s='';j=-1
for i in input():s+=s[j-int(i)]if'/'<i<':'else i;j+=1
print s

Çevrimiçi Deneyin!

Düzenleme: 32-47 arasındaki ascii değerleri için düzeltildi ; İkili kod çözme için sabit (ör. "Alp2c1" ila "alpaka")


1
@Arnauld Hayır. Üzgünüm, spekeri yeterince okumamıştım. Kısaca değiştireceğim
matematik bağımlısı

Bir hata var gibi görünüyor. için 'Prog2am0in6 Puz0les7&1Cod74G4lf'program baskılar Programming Puzzles &7Code1Golf! Her iki TIO bağlantısının da paylaştığını denedim!
Keerthana Prabhakaran

@KeerthanaPrabhakaran Teşekkürler! 0 byte pahasına düzeltildi! (Alternatif çözümüm yine de kesinti yapmadı)
matematik bağımlısı

Bu harika bir yaklaşım!
Keerthana Prabhakaran

'/' <İ <':' i açıklar mısınız? Bir sayı ise test olduğunu biliyorum ama nasıl çalışıyor?
Matias K

2

PHP 7.1 67 59 bayt

while(_&$c=$argn[$i++])$t.=($c^"0")<"
"?$t[~+$c]:$c;echo$t;

STDIN'den girdi alır; pipe olarak çalıştır -nRveya çevrimiçi dene .

  • _&$c=$s[$i++]string ile loop ( _&$colmayan bir şeyle sonuçlanacaktır "0"; bu yüzden loop'u kırabilecek tek karakter boş string = girişin sonu olur)
  • $c^"0" ascii kodunda 5 ve 6 bit
  • <"\n" sonucun <chr (10) olup olmadığını kontrol edin
  • öyleyse, bu bir rakamdır: önceki karakteri dizine göre yazdır (ve geçerli dizine kopyala)
  • başka bir karakter bu

% 12 tasarruf için teşekkürler @Christoph


1
Bunun eski bir cevap olduğunu biliyorum ama: Negatif string ofsetler! (ve bu $s=$argn...?)for(;_&$c=$argn[$i++];)$t.=($c^"0")<"\n"?$t[~+$c]:$c;echo$t;
Christoph

2

Vim makro / tuş vuruşlarını, 49 bayt

^M dönüş karakterini gösterir (0x0A, 1 byte).

qqqqq/[0-9]^Myl:exe 'norm '.(@"+1).'h'^Mylnphx@qq@q

açıklama

qqq                                                     clear register q
   qq                                                   record into q
     /[0-9]^M                                           move the cursor to the next digit
             yl                                         yank the digit
               :exe 'norm '.(@"+1).'h'^M                move the cursor left that number of characters plus one
                                        yl              yank the char
                                          n             go back to the digit
                                           p            paste the char 
                                            hx          delete the digit
                                              @q        recursive call
                                                q       stop recording
                                                 @q     run the macro

2

APL (Dyalog Klasik) , 25 23 bayt

@ FrownyFrog sayesinde -2 bayt

((⊂⌷⊢)⍣≡⍳∘≢-11|⎕d∘⍳)⊃¨⊂

Çevrimiçi deneyin!

kullanımları ⎕io←1

( aşağıda değerlendirmede bir ara değer yer almaktadır)

⎕d dize '0123456789'

⎕d⍳⍵içindeki (1-esaslı) karakterlerin indekslerini bulur ⎕d; rakam olmayanlar için endeks 11

11|⍵ modulo - 11'ler 0s olur

≢⍵ uzunluğu

⍳≢⍵olduğu 1 2 ...kadar≢⍵

böylece, (⍳≢⍵)-11|⎕d⍳⍵bize bir vektör verir ı biz çıkan karakterleri almak için bakmak gerekir endeksleri; ancak bu endekslerin bazıları henüz diğer (daha küçük) endekslere yönlendirebilir. Geçişli kapanışı hesaplamak için (yani etkin endeksler), vektörü kendi içine indeksleriz ( ⊂⌷⊢, (⊂i)⌷iya da eşdeğer bir tren i[i]) ve bunu sabitlenene kadar ( sabit nokta operatörü ⍣≡olarak bilinir ) tekrarlarız .

Sonunda orijinal dizgeye indekslenir: (...)⊃¨⊂


Tren olarak nasıl görünür?
FrownyFrog

@FrownyFrog gerçekten, daha kısa
ngn


1

Japt , 24 bayt

£Xn >J?U=UhYUgJ+Y-X):PÃU

Çevrimiçi deneyin!

Açıklama:

£Xn >J?U=UhYUgJ+Y-X):PÃU
£                     Ã    Iterate through the input (implicit U) 
                             X becomes the iterative item, Y becomes the index
 Xn                          Try parseInt(X)
    >J                       > -1
                               In this case, this checks if X is a digit
      ?                      If true:
       U=                      Set U to 
         UhY                     U with the char at index Y set to:     
            UgJ+Y-X               The index at -1+Y-X
                   ):        Else:
                     P         variable P (just a no-op in this case)
                       U   Finally, return U


1

Python 2 , 58 bayt

lambda s:reduce(lambda t,c:t+(c+t)['/'<c<':'and~int(c)],s)

Bu aslında Jelly cevabımın bir limanıdır, ayrıca @ xnor'ın Python cevabındaki rakam kontrolü.

Çevrimiçi deneyin!



1

JavaScript ES6, 54 bayt

f=r=>[...r].reduce((a,s,i)=>a+(/\d/.test(s)?a[i+~s]:s))

f=r=>[...r].reduce((a,s,i)=>a+(/\d/.test(s)?a[i+~s]:s))

console.log(f("Prog2am0in6"));
console.log(f("abcd"));
console.log(f("a000"));
console.log(f("ban111"));
console.log(f("Hel0o W2r5d!"));
console.log(f("this 222a19e52"));
console.log(f("golfin5 3s24o0d4f3r3y3u"));
console.log(f("Prog2am0in6 Puz0les7&1Cod74G4lf"));
console.log(f("Replicants 4re3lik448ny3oth8r5mac6in8.8T64y'r371it9376a1b5n1fit7or2a1h2z17d."));


1
PPCG'ye Hoşgeldiniz! Özyinelemeli aramalar için işlev adınıza ihtiyacınız yoksa, adsız işlevler geçerlidir, böylece iki bayttan tasarruf edebilirsiniz f=.
Martin Ender

1

> <> (Balık), 108 bayt (= 9 x 12 ızgara)

01-r>:0(\
"/"&::;?/
)?\v    \
":/v!?(":
")\ :>:"0
 !?\
${/  \ -1
&>\ ~{:&$
\ \ :"0"=
/\- 1}$/?
:v&//}~/~
 \o}\&$/ 

Balıkların etrafta yüzdüğünü görmek için burada deneyin .

  • Giriş yığınına -1 ekleyin, ardından yığını ters çevirin.
  • Döngü: Üst değer -1 ise, sonlanır (tüm karakterlerin arasında döndük). Aksi takdirde:
  • Üst karakteri kayıt defterine yerleştirin; "0" - "9" aralığında olup olmadığını kontrol edin. Öyleyse:
    • yığını uygun yer sayısını döndür
    • karakterin işaret edilmesini sağlamak
    • geri dönün ve sayıyı sicilin karakteriyle değiştirin
  • Çıktı; özgeçmiş döngüsü.

1

8086 makine kodu, 35 bayt

00000000  be 82 00 ac 98 50 2c 30  3c 09 77 0c 4e 89 f7 4e  |.....P,0<.w.N..N|
00000010  29 c6 58 ac aa 89 fe 50  5a b4 02 cd 21 80 fa 0d  |).X....PZ...!...|
00000020  75 e1 c3                                          |u..|
00000023


1

Japt v2.0a0, 16 bayt

r\d@=hYUgY-°X¹gY

Dene


açıklama

                     :Implicit input of string U
r                    :Replace
 \d                  :  RegEx /\d/g
   @                 :  Pass each match X at index Y through a function
     hY              :    Set the character at index Y in U
       UgY-°X        :    To the character at index Y-++X
    =        ¹       :    Reassign to U
              gY     :    Get the character at index Y

1

J , 20 bayt

{~[:{~^:_#\-2+_1".,.

Çevrimiçi deneyin

                  ,.  Each character on a separate row
              _1".    Convert to numbers, replacing non-numbers with -1
                         (it becomes one row again)
            2+        Add 2.
         #\           Prefix lengths (range 1..length)
           -          Subtract
  [:{~^:_             Index into itself as long as it changes the result
{~                    Index into the original string

İlham almak için teşekkür etmek için teşekkür ederiz.

22 bayt

(],,{~1{._1-_1".[)/@|.

Bu Jelly cevabının bir limanıdır.

                    |. The string backwards, because reduce is right-to-left.
            _1".[      The next character as a number (d), -1 if it's not a number,
                          and a space character produces an empty array.
         _1-           -1-d
      1{.              Take 1. If we have a nothing
                          at this point, that makes it a 0.
   ,                   Prepend the next character to the result of the previous call.
    {~                 Select the character. 0 is the first, _2 is second to last.
 ],                    Append the result.

Her iki çözümde de TIO'nun kullandığı versiyon, tekli .numarayı 0 olarak yorumluyor , bu nedenle son test başarısız oluyor. Eski versiyonlar (≤7) doğru çalışıyor gibi görünüyor.

Çevrimiçi deneyin!

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.