Bir Piramit (veya Otoyol) Çıktısı


39

Boş olmayan bir dize s, eşit uzunluk ve yüksekliğini temsil eden pozitif bir tamsayı n verildiğinde, aşağıdaki kuralları kullanarak bir piramit oluşturun:

Piramit boş olmayan n çizgiler içermelidir; takip eden yeni satırlara izin verilir. Her 1 <= i <= n için, i-th satırı, her bir i karakterinin yerinde i defa tekrarlanan dizeyi içermelidir; 3 kez tekrarlanan abcd'ler aaabbbcccddd olur. Her çizgi, doldurma boşluklarıyla ortalanmalıdır, böylece her çizginin ortası dikey olarak hizalanır. Her satırın sonundaki sondaki boşluklara izin verilir. Ayrıca ilk satırdan önce bir satır sonuna kadar yeni satırınız olabilir, ancak başka boşluk yok.

Giriş dizesinin bir palindrom olduğu garanti edilmez.

Test durumu

s = 'o-o  o-o', n = 10:

                                    o-o  o-o                                    
                                oo--oo    oo--oo                                
                            ooo---ooo      ooo---ooo                            
                        oooo----oooo        oooo----oooo                        
                    ooooo-----ooooo          ooooo-----ooooo                    
                oooooo------oooooo            oooooo------oooooo                
            ooooooo-------ooooooo              ooooooo-------ooooooo            
        oooooooo--------oooooooo                oooooooo--------oooooooo        
    ooooooooo---------ooooooooo                  ooooooooo---------ooooooooo    
oooooooooo----------oooooooooo                    oooooooooo----------oooooooooo

1
Sandbox Post user42649 tarafından yaratıldı, bu benim silinene kadar hesabımdı.
HyperNeutrino,

Bu sorudaki bir işlevin çıktısı, her biri bir çizgiyi temsil eden dizelerin bir listesi olabilir mi, yoksa yeni çizgilerle birleştirilmeli mi?
notjagan

7
Bir piramit çıktı Kesinlikle bir otoyol demek istiyorsun !
Luis Mendo,

Aztek piramitine benziyor!
QBrute

3
@ QBrute Na. Bir Goa'uld tarafından yapıldı :)
theblitz

Yanıtlar:


12

05AB1E , 9 bayt

γ².D)ƶJ.C

Çevrimiçi deneyin!


γkısaca, Adnan'ın cevabından esinlenmiş; ama Saynı zamanda çalışırdı.


γ          # Split into runs.    | ['0','-','0']
 ².D)      # Push n times.       | [['0','-','0'],['0','-','0'],['0','-','0']]
     ƶ     # Lift by index.      | [['0','-','0'],['00','---','00'],['000','---','000']]
      J    # Inner join.         | ['0-0','00--00','000---000']
       .C  # Center.             | Expected output.

Birinin yanlış yazınızı gerçekten düşürdüğüne inanamıyorum: /
Jonathan Allan,

1
@ JonathanAllan, önlenebilir hatalarımın sıklığı bir dereceye kadar olumsuzlukları hak ediyor.
Magic Octopus Urn

12

05AB1E , 11 bayt

F²γN>×J}».C

05AB1E kodlamasını kullanır . Çevrimiçi deneyin!


168'in üzerindeki girişlerle korkaklaşmaya başlar. Aksi takdirde harika!
tuskiomi

@carusocomputing », iç dizileri boşluklarla birleştirir. Bunu değiştirerek Jçalışmalısınız (ve bunu farklı bir cevap olarak göndermelisiniz).
Adnan,

Ah! Her zaman böyle miydi? Eğer öyleyse, havalı, eğer olmasaydı bunu özlemiş olmalıyım. Teşekkürler yapacağız.
Magic Octopus Urn

8

Jöle , 14 13 bayt

LH×Ḷ}Ṛ⁶ẋżxЀY

Çevrimiçi deneyin!

Nasıl çalışır

LH×Ḷ}Ṛ⁶ẋżxЀY  Main link. Arguments: s (string), n (integer)

L              Get the length l of s.
 H             Halve it, yielding l/2.
   Ḷ}          Unlength right; yield [0, ... n-1].
  ×            Compute [0, l/2, ..., l(n-1)/2].
     Ṛ         Reverse; yield [l(n-1)/2, ..., l/2, 0].
      ⁶ẋ       Space repeat; create string of that many spaces.
         xЀ   Repeat in-place each; repeat the individual characters of s
               1, ..., n times, yielding an array of n strings.
        ż      Zipwith; pair the k-th string of spaces with the k-th string of 
               repeated characters of s.
            Y  Sepatate the resulting pairs by linefeeds.

8

C # (.NET Core) , 139 137 136 130 bayt

using System.Linq;s=>n=>Enumerable.Range(0,n).Select(i=>"".PadLeft((n+~i)*s.Length/2)+string.Concat(s.Select(c=>new string(c,i))))

Çevrimiçi deneyin!

stringÇizimin çizgileri ile s numaralandırmasını döndürür . Bir kez katıldıklarında sonuç şöyle:

                        _  _
                    ಠಠ__ಠಠ    ಠಠ__ಠಠ
                ಠಠಠ___ಠಠಠ      ಠಠಠ___ಠಠಠ
            ಠಠಠಠ____ಠಠಠಠ        ಠಠಠಠ____ಠಠಠಠ
        ಠಠಠಠಠ_____ಠಠಠಠಠ          ಠಠಠಠಠ_____ಠಠಠಠಠ
    ಠಠಠಠಠಠ______ಠಠಠಠಠಠ            ಠಠಠಠಠಠ______ಠಠಠಠಠಠ
ಠಠಠಠಠಠಠ_______ಠಠಠಠಠಠಠ              ಠಠಠಠಠಠಠ_______ಠಠಠಠಠಠಠ
  • Kevin Cruijssen sayesinde 2 bayt kurtarıldı!
  • Value Ink sayesinde 1 bayt kurtarıldı!
  • LiefdeWen sayesinde 6 bayt kurtarıldı!

1
Parantezi 'ni kaldırarak iki bayttan tasarruf edebilirsiniz (n-i-1)*s.Length/2. Ve test davalarını beğendim. +1 :)
Kevin Cruijssen

10
ಠ_ಠyoğunlaşıyor
Magic Octopus Urn

1
Zorunlu " ~ieşdeğerdir -i-1Eğer değiştirerek byte kaydedebilirsiniz böylece," (n-i-1)için (n+~i).
Value Ink

1
ve s=>n=>...başka bir bayt için bu şekilde kullanabilirsiniz
LiefdeWen

1
@CarlosAlejo Ayrı düzenlemeler gönderdiğim için üzgünüm ama aynı zamandanew string(' '..."".PadLeft(...
LiefdeWen

7

Çedar , 71 64 bayt

@ValueInk sayesinde 7 bayt kaydedildi

(s,n)->(1|>n=>i->(s.len*(n-i)/2)*" "+s.sub(/./g,"$&"*i)).asLines

Çevrimiçi deneyin! Biraz açıklama ekleyeceğim

açıklama

(string, count)->(
   1 |> count          // 1..count, the amount of rep/char per line
     => i -> (         // Map over the range       
        s.len*(n-i)/2  // Calculate amount of spaces and repeat by it.
     )*" "
     + s.sub(/./g,"$&"*i) // replace each character, duplicate the amount of times `*i`
).asLines              // return the above joined with newlines

Sorun değil! Cheddar'ın centerRuby cevabımdaki gibi kullanabileceği bir işlevi olup olmadığını merak ediyorum , çünkü potansiyel olarak baytları da kurtarabilir.
Value Ink


5

Java 8, 188 186 185 183 181 173 bayt

s->n->{String r="";int l=s.length()/2,x=l*n,i,j;for(i=0;i++<n;r+="\n"){r+=s.format("%"+x+"s",r).substring(0,x-i*l);for(char c:s.toCharArray())for(j=0;j++<i;r+=c);}return r;}

Hata düzeltme nedeniyle -2 bayt (185 → 183) ( n+1satır yerine satırlar çıkıyordu n). Bir bug-fix bayt kazandırır sık ​​olmuyor. :)
-2 bayt (183 → 181) @ OlivierGrégoire sayesinde

Açıklama:

Burada dene.

s->n->{                          // Method with String and integer parameter and String return-type
  String r="";                   //  Return-String
  int l=s.length()/2,            //  Halve the length of the input-String
      x=l*n,                     //  Halve the length * the input integer
      i,j;                       //  Some temp integers
  for(i=0;i++<n;                 //  Loop (1) `n` times
      r+="\n"){                  //    And after every iteration, add a new-line
    r+=s.format("%"+x+"s",r).substring(0,x-i*l);
                                 //   Add the appropriate trailing spaces
    for(char c:s.toCharArray())  //   Loop (2) over the characters of the String
      for(j=0;j++<i;r+=c);       //    And repeat each one more than in the previous row
                                 //   End of loop (2) (implicit / single-line body)
  }                              //  End of loop (1)
  return r;                      //  Return the result-String
}                                // End of method

1
Önce girişlerinizi taşırsanız, r="",q=s.format("%"+x+"s",r)2 bayt tasarruf edebileceğinizi beyan edebilirsiniz . Sadece iki byte için hareketler :(
Olivier Grégoire

1
@ OlivierGrégoire Teşekkürler! s.format("%"+x+"s",r)Doğrudan kullanarak , golften sonra 8 bayt daha biriktirebildim. :)
Kevin Cruijssen

4

JavaScript (ES6), 85 bayt

Körleme sözdiziminde girdi alır (string)(height). Önde gelen bir yeni hat içerir.

s=>g=(n,p=`
`)=>n?g(n-1,p+' '.repeat(s.length/2))+p+s.replace(/./g,c=>c.repeat(n)):''

gösteri


Son satırdan önce önde gelen boşluklar var, buna izin var mı?
Charlie

@ CarlosAlejo Oh, bu son dakika güncellemesinin istenmeyen bir yan etkisiydi. Şimdi düzeltildi. Bunu bildirdiğin için teşekkürler!
Arnauld,

4

Kömür , 19 bayt

F⁺¹N«J±×ι÷Lη²ιFηFικ

Çevrimiçi deneyin! Bağlantı, kodun ayrıntılı bir versiyonudur. Açıklama:

F⁺¹N«       for (Plus(1, InputNumber())) {

Tekrarlanan 1..nzaman çizgilerine ihtiyacımız var . Bunu başarmanın en kolay yolu, 0 dan n ye kadar olan döngüdür, çünkü döngü 0, temel olarak bir no-op'tur.

J±×ι÷Lη²ι       JumpTo(Negate(Times(i, IntDivide(Length(h), 2))), i);

İmleci, ortaya çıkan çizgi ortalanacak şekilde yerleştirin.

FηFικ           for (h) for (i) Print(k);

Ve bu, her karakterin tekrarlanan ikez basılmasının ne kadar basit olduğu.


4

Python 2 , 75 77 bayt

s,n=input()
for i in range(n):print''.join(c*-~i for c in s).center(len(s)*n)

Çevrimiçi deneyin!


Dang, neredeyse aynı cevabı verdim ama bir işlevin satır listesini döndürüp döndürmeyeceğinden emin değildim. Öyleyse, benimkini ayrı bir cevap olarak gönderirim, ancak olmasa da gönderiye çok benzer.
notjagan

3
Vay, centeryerleşik var mı? Gerçekten bazen doktorları okumam gerekiyor: P
HyperNeutrino

Yanlış çıktıyı döndürür; bu satırda satır önde gelen boş bir n-1satır var.
Value Ink

Ayrıca, son satırdan önce bazı önde gelen beyaz alanlarınız var, buna izin var mı?
Charlie

@FryAmTheEggman doğru olabilir, ancak 9giriş olduğunda hala piramit satırları döndürüyor 10...
Value Ink


4

Javascript, 105 bayt

(s,n)=>Array(N=n).fill().reduce(a=>a+'\n'+' '.repeat(--n*s.length/2)+s.replace(/./g,_=>_.repeat(N-n)),'')

Birkaç yıl sonra Stretch Maniac geri döndü, umarım bu sefer biraz daha eğitimlidir.


Her satırda çok fazla satır aralığı var.
Shaggy,

İşte sizinkini görmeden önce karşılaştığım bu yöntemin 99 byte ES8 sürümü: s=>n=>[...Array(x=n)].reduce(a=>a+'\n'.padEnd(--x*s.length/2+1)+s.replace(/./g,c=>c.repeat(n-x)),'')- 's'yi backtick'lerle ve \ndeğişmez bir yeni satırla değiştirmeniz gerekecek .
Shaggy


3

APL (Dyalog) , 33 31 bayt

Gereksiz parantezleri kaldırarak @ ZacharyT sayesinde 2 baytlık golf sahası

{↑((' '/⍨(.5×≢⍵)×⍺-⊢),⍵/⍨⊢)¨⍳⍺}

Çevrimiçi deneyin!

açıklama

Doğru argüman dizedir ve sol argüman sayıdır.

{↑((' '/⍨(.5×≢⍵)×⍺-⊢),⍵/⍨⊢)¨⍳⍺}
                             ⍳⍺      Range 1 .. 
  (                                For each element (let's call it i) do:
                      ⍵/⍨⊢          Replicate ⍵ i times
  (                 ),               Concatenated with
         (.5×≢⍵)×⍺-⊢                (⍺-i)×(len(⍵)×0.5)
   ' '/⍨                                spaces
 ↑                                    Convert the resulting array to a 2D matrix

Etraftaki parenlere ihtiyacın var ⍺-⊢mı?
Zacharý

@ ZacharyT Haklısın, onlara ihtiyacım yok. Thanks :)
Kritixi Lithos

3

SWI Prolog, 398 bayt

En kompakt çözüm değildir (belki de yerleşik prosedürleri kullanmak yerine tekerleği yeniden icat eden bir yer), ancak işe yaramaktadır.

w(0).
w(X):-write(' '),Y is X-1,w(Y).
s(S,N):-string_length(S,X),Y is div(X,2)*N,w(Y).
d(S,N,R):-atom_chars(S,A),e([],A,N,R).
e(B,[H|T],N,R):-l(B,H,N,I),e(I,T,N,R).
e(B,[],_,B).
a([], L, L).
a([H|T],L,[H|R]):-a(T,L,R).
l(L,_,0,L).
l(L,I,N,R):-M is N-1,l(L,I,M,T),a(T,[I],R).
o([]):-nl.
o([H|T]):-write(H),o(T).
p(S,N):-p(S,N,N).
p(_,0,_).
p(S,N,L):-Q is N-1,p(S,Q,L),d(S,N,R),W is L-N,s(S,W),o(R).

Ölçek:

?- p("o-o  o-o",10).
                                    o-o  o-o
                                oo--oo    oo--oo
                            ooo---ooo      ooo---ooo
                        oooo----oooo        oooo----oooo
                    ooooo-----ooooo          ooooo-----ooooo
                oooooo------oooooo            oooooo------oooooo
            ooooooo-------ooooooo              ooooooo-------ooooooo
        oooooooo--------oooooooo                oooooooo--------oooooooo
    ooooooooo---------ooooooooo                  ooooooooo---------ooooooooo
oooooooooo----------oooooooooo                    oooooooooo----------oooooooooo
true .

Açıklama:

w ve s uygun miktarda satır aralığı yazar:

w(0).
w(X):-write(' '),Y is X-1,w(Y).
s(S,N):-string_length(S,X),Y is div(X,2)*N,w(Y).

d , karakterlerin "çoğaltılmasını" yönetir ve e , özyinelemeli tesisidir:

//d(String, Number of repetitions, Result)
d(S,N,R):-atom_chars(S,A),e([],A,N,R).
e(B,[H|T],N,R):-l(B,H,N,I),e(I,T,N,R).
e(B,[],_,B).

a ve ben sonucu ekleriz (belki de yerleşik bir prosedür var mıdır?):

a([], L, L).
a([H|T],L,[H|R]):-a(T,L,R).
l(L,_,0,L).
l(L,I,N,R):-M is N-1,l(L,I,M,T),a(T,[I],R).

o çıktıyı yaratır:

o([]):-nl.
o([H|T]):-write(H),o(T).

ve son olarak p olan ana yöntem :

p(S,N):-p(S,N,N).
p(_,0,_).
//p(String, Current level, Number of levels) :- go to the bottom, create pyramide level, write whitespaces, write the level
p(S,N,L):-Q is N-1,p(S,Q,L),d(S,N,R),W is L-N,s(S,W),o(R).

3

Japt , 20 + 1 = 21 19 + 1 = 20 14 bayt

Bir satır dizisi çıktılar - buna izin verilmezse 2 bayt ekleyin.

Võ@®pXÃù°V*UÊz

Dene


açıklama

      :Implicit input of string U & integer V
Võ    :Generate an array of integers from 1 to V, inclusive
@     :Map over the elements of the array
®     :Map over the characters of U
p     :Repeat the current character ...
X     :  X (the current element) times.
à    :End string mapping.
ù     :Left pad each line with spaces to length...
°V    :  V incremented by one...
*     :  multiplied by...
UÊ    :  the length of U...
z     :  divided by 2.
      :Implicit output of resulting array.

Ben değiştirebileceğiniz düşünmek SpUliçin ... bekleyin, boşver :( Yine de değiştirerek bir bayt kaydedebilirsiniz (V-Xile XnVyanılmıyorsam eğer,.
ETHproductions

Evet, unutmuşum n; teşekkürler @ETHproductions.
Shaggy

2

PHP, 113 bayt:

for([,$s,$n]=$argv;$i++<$n;)for(print($f=str_pad)("
",($n-$i)*strlen($s)/2+!$p=0);~$c=$s[$p++];)echo$f($c,$i,$c);

Çevrimiçi olarak çalıştırın php -nr '<code>' '<string>' <N>veya test edin .

Yıkmak

# import input, loop $i from 1 to $n
for([,$s,$n]=$argv;$i++<$n;)
    # 1. print newline and padding, reset $p
    for(print($f=str_pad)("\n",($n-$i)*strlen($s)/2+!$p=0);
    # 2. loop $c through string
        ~$c=$s[$p++];)
        # print repeated character
        echo$f($c,$i,$c);


2

T-SQL, 223 bayt

DECLARE @ char(99),@n INT,@i INT=1,@j INT,@p varchar(max)SELECT @=s,@n=n FROM t
R:SET @j=0SET @p=SPACE((@n-@i)*len(@)/2)C:SET @j+=1SET @P+=REPLICATE(SUBSTRING(@,@j,1),@i)IF @j<LEN(@)GOTO C
PRINT @p SET @i+=1IF @i<=@n GOTO R

Girdi önceden var olan Tablo yoluyladır t sütunları ile s ve n , bizim ES standartlarına göre .

Açıklamak için çok fazla değil @i, satırlar için kullanarak ve zaman zaman @jdize karakterleri arasında gezinmek için oldukça basit bir yuvalanmış döngü REPLICATED @i:

DECLARE @ char(99),@n INT,@i INT=1,@j INT,@p varchar(max)
SELECT @=s,@n=n FROM t
R:
    SET @j=0
    SET @p=SPACE((@n-@i)*len(@)/2) 
    C:
        SET @j+=1
        SET @P+=REPLICATE(SUBSTRING(@,@j,1),@i)
    IF @j<LEN(@)GOTO C
    PRINT @p
    SET @i+=1
IF @i<=@n GOTO R

2

R , 125 95 bayt

function(S,n)for(i in 1:n)cat(rep(' ',(n-i)/2*nchar(S)),rep(el(strsplit(S,'')),e=i),sep="",'
')

Çevrimiçi deneyin!

Açıklama:

Oldukça basittir, ipi bölmek ve elemanları döngü olarak tekrarlamak için iher birini rep(s,e=i)( ekısa each) tekrarlamaktır. En zor kısım rep('',(n-i)/2*length(s)+1). Bu dolgu ipi, ama bir sürü boş ip. 1 eklemeliyim çünkü aksi takdirde sonuç character(0)sıfır uzunluklu bir vektördür ve catöğelerini varsayılan olarak boşluklarla ayıran son çizgiyi yanlış hizalar.


1

Mathematica, 97 bayt

(c=Characters@#;T=Table;Column[T[""<>T[""<>T[c[[i]],j],{i,Length@c}],{j,#2}],Alignment->Center])&


giriş

["oo oo", 10]


1

Tcl, 143 142 141 138 bayt

proc p s\ n {set p [expr [set w [expr [string le $s]/2]]*$n];time {incr p $w;puts [format %$p\s [regsub -all . $s [append r \\0]]]} $n;cd}

Ölçek:

% p "o-o  o-o" 5
                o-o  o-o
            oo--oo    oo--oo
        ooo---ooo      ooo---ooo
    oooo----oooo        oooo----oooo
ooooo-----ooooo          ooooo-----ooooo

Not: prosedürün sonunda "cd", zaman sonucunun piramidin altında yazdırılmasını önler, ancak mevcut dizini değiştirir - açıkça yasaklanmayan bir yan etki.

Bir bayt kurtarmak için bir ipucu için ... ve bir bayt daha kaydetmek için başka bir ipucu için teşekkürler.

En boy oranı sayesinde (tcl sohbetinde) 3 bayt daha kaydedildi!


1

Swift, 232 bayt

Muhtemelen daha iyi olabilirdi, ama yeniden toplanmak için fazla zamanım yok.

Bu cevap Swift 4'ü kullanıyor, bu nedenle şu anda çevrimiçi çalıştırılamıyor.

var p:(String,Int)->String={s,i in let r=(1...i).map{n in return s.map{return String(repeating:$0,count:n)}.joined()};return(r.map{return String(repeating:" ",count:(r.last!.count-$0.count)/2)+$0}as[String]).joined(separator:"\n")}

1

LOGO, 97 95 bayt

to f :s :n
for[i 1 :n][repeat(:n-:i)/2*count :s[type "\ ]foreach :s[repeat :i[type ?]]pr "]
end

FMSLogo tercüman kodunu deneyin.

fİki giriş alan bir fonksiyon tanımlayın :sve :nardından sonucu yazdırın.


1

Java 8, 164 148 bayt

s->n->{String o="";for(int i=0,m,j;i++<n;){o+="\n";for(m=0;m++<(n-i)*s.length()/2;)o+=" ";for(char c:s.toCharArray())for(j=0;j++<i;)o+=c;}return o;}

Açıklama:

s->n->{
    String o = "";                                  //empty output string
    for (int i = 0, m, j; i++ < n; ) {              //for each row
        o += "\n";                                  //append a new line
        for (m = 0; m++ < (n - i)*s.length()/2; )   //for amount of spaces = inversed row_number * half length
            o += " ";                               //append a space
        for (char c : s.toCharArray())              //for each char of the string
            for (j = 0; j++ < i; )                  //row_number times
                o+=c;                               //append char
    }
    return o;
}

1

Pas, 107 bayt

|a:&str,b|for i in 0..b{println!("{:^1$}",a.split("").map(|s|s.repeat(i+1)).collect::<String>(),a.len()*b)}

oyun parkı bağlantısı

Bir dize dilimini ve numarasını alan ve istenen deseni standart çıktıya yazdıran adsız bir işlev tanımlar. Dize diliminin yalnızca ASCII karakterleri içerdiğini varsayar, ancak meydan okuma hiçbir zaman tam unicode desteğinin gerekli olduğunu belirtmez. Unicode için de doğru olmak için 117 bayt gerekir:

|a:&str,b|for i in 0..b{println!("{:^1$}",a.split("").map(|s|s.repeat(i+1)).collect::<String>(),a.chars().count()*b)}

Açıklama oldukça basit:

|a:&str,b|                             // arguments, compiler can't infer the type of a unfortunately
    for i in 0..b {                    // iterate from row 0 to row b - 1
        println!(
            "{:^1$}",                  // print a line containing arg 0, centered with the width specified as arg 1
            a.split("")                // split the string into slices of one character
                .map(|s|s.repeat(i+1)) // for each slice, yield a string containing row+1 times that slice
                .collect::<String>(),  // concatenate each of the strings into one string
            a.len()*b                  // total length should be the length of the string times the amount of rows
        )
    }

1

SOGL V0.12 , 8 bayt

∫dč*∑}¹╚

Burada dene!

Açıklama:

∫dč*∑}¹╚
∫    }    iterate over 1..input, pushing counter
 d        push the variable D, which sets itself to the next input as string
  č       chop into characters - a vertical array
   *      multiply horizontally by the counter
    ∑     join the array together
      ¹   wrap all that in an array
       ╚  center horizontally

Buradaki eski cevabımı güncellemek istemedim çünkü farklı bir yöntem kullanıyor ve yeni (zorluktan başka) bir özellik kullanıyor -


1

Python 2 , 79 77 bayt

s,n=input();m=n
while m:m-=1;print' '*(m*len(s)/2)+''.join(i*(n-m)for i in s)

Çevrimiçi deneyin!

Düzenleme: -2 bayt nezaket @FlipTack


Sen köşeli parantez kaldırabilir [i*(n-m)for i in s]olarak, .joinsize iki bayt ave gereken bir jeneratör, çekebilme yeteneğine de sahip.
FlipTack

0

Excel VBA, 98 Bayt

Girdi olarak gelen [A1]ve int'den gelen dizeyi alan anonim VBE acil pencere işlevi [B1]VBE acil durum penceresine çıkar

For i=1To[B1]:?Spc([Len(A1)/2]*([B1]-i));:For j=1To[Len(A1)]:?String(i,Mid([A1],j,1));:Next:?:Next
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.