কার্পেট বিছানো


40

এই এসও প্রশ্ন দ্বারা অনুপ্রাণিত ।

চ্যালেঞ্জ:

ইনপুট:

  • একটি স্ট্রিংs
  • একটি চরিত্রc

আউটপুট:

কেন্দ্রের স্ট্রিংয়ের প্রথম অক্ষরটি এবং কেন্দ্রের বাইরে চলে যাওয়ার সাথে সাথে চারটি দিকের স্ট্রিংয়ের একটি হীরা-বর্গক্ষেত্রের ASCII শিল্প তৈরি করুন। যা একটি বর্গক্ষেত্রের ASCII- শিল্প কার্পেটের ভিতরে রয়েছে, ফিলার হিসাবে চরিত্রটি রয়েছে। এটি বেশ অস্পষ্ট মনে হতে পারে, সুতরাং এখানে একটি উদাহরণ:

ইনপুট: s = string, c = .
আউটপুট:

..........g..........
........g.n.g........
......g.n.i.n.g......
....g.n.i.r.i.n.g....
..g.n.i.r.t.r.i.n.g..
g.n.i.r.t.s.t.r.i.n.g
..g.n.i.r.t.r.i.n.g..
....g.n.i.r.i.n.g....
......g.n.i.n.g......
........g.n.g........
..........g..........

চ্যালেঞ্জ বিধি:

  • ইনপুট-স্ট্রিং অক্ষরের একটি তালিকাও হতে পারে
  • আউটপুট স্ট্রিং-লাইন বা অক্ষরের ম্যাট্রিক্সের তালিকাও হতে পারে
  • ইনপুট-স্ট্রিং এবং চরিত্রটি খালি খালি থাকার গ্যারান্টিযুক্ত
  • স্ট্রিংটিতে অক্ষরটি না থাকার গ্যারান্টিযুক্ত
  • উভয় স্ট্রিং এবং চরিত্রই কেবল প্রিন্টযোগ্য এএসসিআইআই (ইউনিকোড পরিসর [32,126], স্পেস '' থেকে টিলডে '~' সহ)

সাধারণ নিয়ম:

  • এটি , তাই বাইট জেতে সংক্ষিপ্ত উত্তর।
    কোড-গল্ফ ভাষাগুলি আপনাকে নন-কোডগলফিং ভাষার সাথে উত্তর পোস্ট করতে নিরুৎসাহিত করবেন না। 'যে কোনও' প্রোগ্রামিং ভাষার পক্ষে যতটা সম্ভব সংক্ষিপ্ত উত্তর নিয়ে আসার চেষ্টা করুন।
  • আপনার উত্তরটির জন্য ডিফল্ট আই / ও বিধিগুলি সহ মানক বিধিগুলি প্রযোজ্য , সুতরাং আপনাকে সঠিক পরামিতি এবং ফিরতি-টাইপ, সম্পূর্ণ প্রোগ্রাম সহ STDIN / STDOUT, ফাংশন / পদ্ধতি ব্যবহারের অনুমতি দেওয়া হবে। আপনার কল
  • ডিফল্ট লুফোলগুলি নিষিদ্ধ।
  • যদি সম্ভব হয় তবে আপনার কোডের (যেমন টিআইও ) একটি পরীক্ষার সাথে একটি লিঙ্ক যুক্ত করুন ।
  • এছাড়াও, আপনার উত্তরের জন্য একটি ব্যাখ্যা যুক্ত করা অত্যন্ত প্রস্তাবিত।

পরীক্ষার কেস:

ইনপুট: = , = আউটপুট:sসি =11111c=0

00000000100000000
00000010101000000
00001010101010000
00101010101010100
10101010101010101
00101010101010100
00001010101010000
00000010101000000
00000000100000000

ইনপুট: = , = আউটপুট:s12345ABCDEFc#

####################F####################
##################F#E#F##################
################F#E#D#E#F################
##############F#E#D#C#D#E#F##############
############F#E#D#C#B#C#D#E#F############
##########F#E#D#C#B#A#B#C#D#E#F##########
########F#E#D#C#B#A#5#A#B#C#D#E#F########
######F#E#D#C#B#A#5#4#5#A#B#C#D#E#F######
####F#E#D#C#B#A#5#4#3#4#5#A#B#C#D#E#F####
##F#E#D#C#B#A#5#4#3#2#3#4#5#A#B#C#D#E#F##
F#E#D#C#B#A#5#4#3#2#1#2#3#4#5#A#B#C#D#E#F
##F#E#D#C#B#A#5#4#3#2#3#4#5#A#B#C#D#E#F##
####F#E#D#C#B#A#5#4#3#4#5#A#B#C#D#E#F####
######F#E#D#C#B#A#5#4#5#A#B#C#D#E#F######
########F#E#D#C#B#A#5#A#B#C#D#E#F########
##########F#E#D#C#B#A#B#C#D#E#F##########
############F#E#D#C#B#C#D#E#F############
##############F#E#D#C#D#E#F##############
################F#E#D#E#F################
##################F#E#F##################
####################F####################

ইনপুট: = , = আউটপুট:s@+-|-o-|-Oc:

::::::::::::::::::O::::::::::::::::::
::::::::::::::::O:-:O::::::::::::::::
::::::::::::::O:-:|:-:O::::::::::::::
::::::::::::O:-:|:-:|:-:O::::::::::::
::::::::::O:-:|:-:o:-:|:-:O::::::::::
::::::::O:-:|:-:o:-:o:-:|:-:O::::::::
::::::O:-:|:-:o:-:|:-:o:-:|:-:O::::::
::::O:-:|:-:o:-:|:-:|:-:o:-:|:-:O::::
::O:-:|:-:o:-:|:-:+:-:|:-:o:-:|:-:O::
O:-:|:-:o:-:|:-:+:@:+:-:|:-:o:-:|:-:O
::O:-:|:-:o:-:|:-:+:-:|:-:o:-:|:-:O::
::::O:-:|:-:o:-:|:-:|:-:o:-:|:-:O::::
::::::O:-:|:-:o:-:|:-:o:-:|:-:O::::::
::::::::O:-:|:-:o:-:o:-:|:-:O::::::::
::::::::::O:-:|:-:o:-:|:-:O::::::::::
::::::::::::O:-:|:-:|:-:O::::::::::::
::::::::::::::O:-:|:-:O::::::::::::::
::::::::::::::::O:-:O::::::::::::::::
::::::::::::::::::O::::::::::::::::::

ইনপুট: = , = আউটপুট:sABcc

ccBcc
BcAcB
ccBcc

ইনপুট: = , = আউটপুট:s~cX

~

ইনপুট: = , = আউটপুট:s/\^/\cX

XXXXXXXX\XXXXXXXX
XXXXXX\X/X\XXXXXX
XXXX\X/X^X/X\XXXX
XX\X/X^X\X^X/X\XX
\X/X^X\X/X\X^X/X\
XX\X/X^X\X^X/X\XX
XXXX\X/X^X/X\XXXX
XXXXXX\X/X\XXXXXX
XXXXXXXX\XXXXXXXX

স্ট্রিংয়ে স্পেস থাকতে পারে?
এমিগানা

1
@ এমিগনা হ্যাঁ, সমস্ত মুদ্রণযোগ্য এএসসিআইআই (ইউনিকোড পরিসর [32,126]) বৈধ ইনপুট-অক্ষর।
কেভিন ক্রুইজসেন

1
আপনি যদি এমন কোনও অক্ষর ব্যবহার করেন যা দৃশ্যমানভাবে কোনও একক চরিত্রের মতো দেখা যায়, তবে এটি ডিবাগ করার জন্য দুর্দান্ত হয়ে ওঠে ()()()
ফিলিপ হাগলুন্ড

Happen s empty ফাঁকা থাকলে কী হবে?
সলোমন উকো

@ সলোমনউকো নিয়মাবলী বিভাগ থেকে: " ইনপুট-স্ট্রিং এবং চরিত্রটি শূন্য নয় বলে গ্যারান্টিযুক্ত " :)
কেভিন ক্রুইজসেন ২

উত্তর:



6

আর , 118 95 92 বাইট

function(a,d,n=length(a),I=c(n:1,1:n)[-n])for(i in I-1)write(c(a,d)[pmin(I+i,n+1)],1,n*2,,d)

এটি অনলাইন চেষ্টা করুন!

ধন্যবাদ:

  • একটি ত্রুটি এবং গল্ফ ঠিক করার জন্য জিউসেপ
  • অ্যারোন হেইম্যান 22 বাইট মূল্য গল্ফ জন্য

আমার ধারণা forকমপক্ষে গল্ফ করার জন্য আমাকে আর এড়াতে হবে R
হারুন হেইম্যান

@ জিউসেপ, ধন্যবাদ, অতিরিক্ত পরীক্ষার কেস অন্তর্ভুক্ত করার বিষয়ে আমার এত অলস হওয়া উচিত নয়!
কিরিল এল

1
এটি 98 এর জন্য আমার সমাধানের চেয়ে আপনার সমাধানের কাছাকাছি দেখায় এটি অনলাইনে চেষ্টা করুন!
হারুন হায়মান

1
কিছুটা পুনর্বিন্যাসের সাথে আরও দুটি কে ছাড়তে পারে: এটি অনলাইনে চেষ্টা করুন!
অ্যারন হেইম্যান

1
@AaronHayman বা অন্য এই 92 byter মিশ্রন pminপুনর্বিন্যাস সঙ্গে :-) যুক্তিবিজ্ঞান
: Giuseppe

5

জে , 59 56 বাইট

,{~[:((0-2*#)}.\[:,0,:"0({:>:t)*t=:]+/<:)[:(|.@}.,])#\@]

এটি অনলাইন চেষ্টা করুন!

জে এর জন্য খুব দীর্ঘ সমাধান ... (সম্পূর্ণ আমার দোষ)



@ ফ্রাউনফ্রোগ ধন্যবাদ, আমি মনে করি আপনার নিজের সমাধান হিসাবে এটি পোস্ট করা উচিত
গ্যালেন ইভানোভ ২

5

আর , একটি কুরুচিপূর্ণ 118 বাইট সংস্করণ

ইনপুটটিকে একক অক্ষরের ভেক্টর হতে দিয়ে এবং দুর্দান্ত আসকি শিল্প প্রিন্ট করার পরিবর্তে ম্যাট্রিক্স আউটপুট আউট করে।

function(s,C,l=length(s),L=4*l-3,k=2*l-1,y=abs(rep(1:k,L)-l)+abs(rep(1:L,e=k)-k)/2+1)matrix(ifelse(y%%1|y>l,C,s[y]),k)

এটি অনলাইন চেষ্টা করুন!

আর , 161 157 বাইট

শর্তাধীন পরিবর্তনের পরিবর্তে ifelse ব্যবহার করে 4 বাইট সংরক্ষণ করা হয়েছে y

function(S,C,l=nchar(S),L=4*l-3,k=2*l-1,y=abs(rep(1:L,k)-k)/2+abs(rep(1:k,e=L)-l)+1)cat(rbind(matrix(ifelse(y%%1|y>l,C,el(strsplit(S,''))[y]),L),'
'),sep='')

এটি অনলাইন চেষ্টা করুন!

ungolfed এবং মন্তব্য

function(S,C){
    s=el(strsplit(S,''))
    l=nchar(S)
    L=4*l-3
    k=2*l-1
    y=abs(rep(1:L,k)-k)/2+abs(rep(1:k,e=L)-l)+1 # distance from centre
    y[!!y%%1]=l+1  # set non integers to one more than length of string
    y[y>l]=l+1     # set number beyond length of string to one more than length of string
    M = rbind(matrix(c(s,C)[y],L),'\n') # build matrix and add line returns
    cat(M,sep='') # print the matrix as a string
}

হুঁ, এখন পর্যন্ত সবচেয়ে দীর্ঘ উত্তর বলে মনে হচ্ছে!


ওহে প্রিয়, প্রশ্নটি আরও ভাল করে দেখা উচিত ছিল
হারুন হেইম্যান

1
@ কেভিন ক্রুইজসেন আমি এখনই এটি স্থির করেছি
হারুন হেইম্যান ২

1
+15 বাইটের জন্য, আপনি নিজের কুরুচিপূর্ণ উত্তরকে অসি-আর্ট করতে পারেন: এটি অনলাইনে চেষ্টা করুন!
জিউসেপ্পে


4

05 এ বি 1 ই , 15 11 বাইট

.sûsζøsýí€û

এটি অনলাইন চেষ্টা করুন! বা টেস্ট স্যুট হিসাবে

ব্যাখ্যা

.s            # push suffixes of input
  û           # palendromize this list
   sζ         # transpose using the second input as filler
     ø        # transpose back
      sý      # merge each on the second input
        í     # reverse each row
         €û   # palendromize each row

1
@ কেভিন ক্রুজসেন: হ্যাঁ। ভাগ্যক্রমে এটি ঠিক করতে কোনও বাইট খরচ হয়নি। আমি এখনও মনে করি যদিও এটি করার আরও ভাল উপায় হওয়া উচিত, তাই আমি সন্ধান করতে থাকব।
এমিগিনা

" আউটপুট স্ট্রিং-লাইন বা অক্ষরের ম্যাট্রিক্সের তালিকাও হতে পারে ", যাতে আপনি »পাদলেখকে স্থানান্তর করতে পারেন । :)
কেভিন ক্রুইজসেন

পছন্দ করুন আমি সেই অংশটাকে এক নজরে রেখেছি। ধন্যবাদ :)
এমিগিনা

4

জে , 35 34 33 বাইট

,{~1j1(}:@#"1{:(<*-)1-|+/|)i:@-&#

এটি অনলাইন চেষ্টা করুন!


-&#cs
i:
1-|+/|
{: (<*-)-&#

 0  0 _1  0  0
 0 _1 _2 _1  0
_1 _2 _3 _2 _1
 0 _1 _2 _1  0
 0  0 _1  0  0

নেতিবাচক সূচকগুলি পাইথনের মতো -1 থেকে শুরু হয়। শূন্যগুলির কলামগুলি সন্নিবেশ করানো কেবলমাত্র একমাত্র জিনিস।

1j1( #"1
  }:@
,{~cs

অ্যালগরিদমের জন্য গ্যালেন ইভানভকে অনেক ধন্যবাদ।


আপনি একটি ব্যাখ্যা যোগ করতে আপত্তি হবে? আমি জে এর সাথে তেমন পরিচিত নই
কেভিন ক্রুইজসেন

4

কে (এনএনজি / কে) , 38 বাইট

{1_',/'y,''2{+x,1_|x}/(#x)'1_,/+y,'|x}

এটি অনলাইন চেষ্টা করুন!

{ }আর্গুমেন্ট সহ ফাংশন x(STRING গুলি ) এবং y(চরিত্র )

|x বিপরীত x

y,'পূর্বে লিখুন yপ্রতিটি

+ TRANSPOSE

,/ CONCAT

1_ প্রথম চর ফেলে দিন

এই মুহুর্তে আমাদের কাছে অক্ষরের দ্বারা অনুসরণের দৈর্ঘ্যের ( x) উদাহরণ রয়েছেyx

#x এর দৈর্ঘ্য x

(#x)' যে ক্রমাগত বহু অক্ষরের উইন্ডো স্লাইডিং

2{ }/ দু'বার কর

+x,1_|xএর প্রথম উপাদান ছাড়াই xবিপরীতদের সাথে যোগ দিন xএবং ট্রান্সপোজ করুন

y,''শুরুতে যোগ yপ্রতিটি প্রতিটি

,/' একত্রিত

1_' প্রতিটি থেকে একটি ড্রপ


3

জাপট , 15 বাইট

লাইনের একটি অ্যারে প্রদান করে

Ôå+ ®¬qV êÃûV ê

চেষ্টা করে দেখুন

Ôå+ ®¬qV êÃûV ê     :Implicit input of strings U=s & V=c
Ô                   :Reverse U
 å+                 :Prefixes
    ®               :Map
     ¬              :  Split
      qV            :  Join with V
         ê          :  Palindromise
          Ã         :End map
           ûV       :Centre pad each string with V, to the length of the longest
              ê     :Palindromise

3

কাঠকয়লা , 15 বাইট

UBηEθ✂θκ‖O↑←UE¹

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। মূলত এখন মুছে ফেলা স্যান্ডবক্স পোস্টে একটি মন্তব্য হিসাবে জমা দেওয়া । ব্যাখ্যা:

UBη

দ্বিতীয় ইনপুট পটভূমি সেট করুন c

Eθ✂θκ

sসমস্ত প্রত্যয় উত্পন্ন করার জন্য প্রথম ইনপুটটিতে মানচিত্র করুন এবং স্পষ্টভাবে পৃথক লাইনে মুদ্রণ করুন।

‖O↑←

অনুভূমিক এবং উল্লম্বভাবে প্রতিফলিত করুন।

UE¹

অনুভূমিকভাবে অতিরিক্ত স্থান যুক্ত করুন।




2

জাপট , 16 বাইট

দ্রষ্টব্য: আমি এটি গল্ফ করব :)

Ôå+ ®¬qVÃùV mê ê

এটি অনলাইন চেষ্টা করুন!


এটি অন্যান্য জাপা উত্তরের সাথে মোটামুটি একই রকম, তবে ভিন্ন ধারায়, তাই না? আমি জাপটকে চিনি না, তবে উভয় উত্তরে আমি একই রকম চরিত্রগুলি দেখতে পাচ্ছি। ;)
কেভিন ক্রুইজসেন

@KevinCruijssen হ্যাঁ, এখন প্রায় একই জন্য, হয়
লুইস ফিলিপ de Jesus Munoz

কেভিন ক্রুইজসেন, লুইস আমার সমাধান থেকে এটি স্বাধীনভাবে বিকাশ করেছেন।
শেগি

2

পাওয়ারশেল , 120 বাইট

param($s,$c)($s,(($l=$s.length-1)..0+1..$l|%{($x=$c*(2*$_))+($s[($_,($l..$_+($_+1)..$l))[$_-ne$l]]-join$c)+$x}))[$l-gt0]

এটি অনলাইন চেষ্টা করুন!

কিছু দিন, স্লাইসের পরিবর্তে সূচি সীমাবদ্ধতা থাকা আসলেই ব্যথা হয়। আজ সেই দিনগুলির একটি। একক উপাদানগুলির সাথে লেনদেন করার সময় সংযুক্ত রেঞ্জগুলি বিশৃঙ্খলাবদ্ধ হওয়ার কারণে (যেমন ०.০ + ১.০ ফেরানো), সম্পূর্ণরূপে এড়াতে বিশেষ ক্যাসিং ব্যবহার করা হয় (অনেকগুলি বাইটের দামে)।




2

পাওয়ারশেল , 82 83 বাইট

+2 বাইট ধন্যবাদ ভেস্কঃ একক অক্ষর কেস বাগ সমাধান করা হয়েছে

-1 বাইট: Input-string may also be a list of charactersব্যবহৃত নিয়ম

$c,$s=$args
($s|%{(-join$s|% s*g $i)+$c*$i++})[($r=$i..0+1..$i)]|%{"$_"[$r]-join$c}

এটি অনলাইন চেষ্টা করুন!

কম গল্ফড:

$c,$s=$args
$southEast = $s|%{
    (-join$s|% substring $i) + $c*$i++
}
$range=$i..0+1..$i
$southEast[$range]|%{
    "$_"[$range]-join$c
}

1
একক চরিত্রের ক্ষেত্রে মনে হচ্ছে এটি বিরতি। টিআইও লিঙ্কের কেবল একটি খালি লাইন রয়েছে~
ভেসকাঃ ২

প্রকৃতপক্ষে. ধন্যবাদ!
mazzy

2

পিপ , 24 20 বাইট

QPRV:_JbMa@>RV,#aZDb

-lমানব-পঠনযোগ্য আউটপুট পেতে পতাকাটি ব্যবহার করুন । এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

QPRV:_JbMa@>RV,#aZDb
                      a,b are cmdline args (implicit)
                a     1st cmdline arg (the string)
               #      Length
              ,       Range
            RV        Reverse
         a@>          Take slices of a starting at those indices
                 ZDb  Zip the list of slices together, filling out missing values in
                      the matrix with b (the character)
        M             To each row, map this function:
     _Jb               Join on b
  RV:                 Reverse (making top row the bottom and vice versa)
QP                    Quad-palindromize: reflect downward and rightward, with overlap

উদাহরণস্বরূপ, এর ইনপুট সঙ্গে abcdএবং .:

RV,#a
 [3 2 1 0]
a@>
 ["d" "cd" "bcd" "abcd"]
ZDb
 [['d 'c 'b 'a] ['. 'd 'c 'b] ['. '. 'd 'c] ['. '. '. 'd]]
_JbM
 ["d.c.b.a" "..d.c.b" "....d.c" "......d"]
RV:
 ["......d" "....d.c" "..d.c.b" "d.c.b.a"]
QP
 ["......d......" "....d.c.d...." "..d.c.b.c.d.." "d.c.b.a.b.c.d" "..d.c.b.c.d.." "....d.c.d...." "......d......"]

2

সংযুক্তি , 57 বাইট

${q:=#x-1Bounce!Bounce@Join&y@PadLeft&y&#x=>x[q::(q::0)]}

এটি অনলাইন চেষ্টা করুন! আউটপুট লাইনের একটি তালিকা is

ব্যাখ্যা

?? parameters: x, y
${
    ?? q is length of x - 1
    q:=#x-1
    ?? Reflect, collapsing middle:
    Bounce!
        ?? Function:
            ?? Reflect,
            Bounce@
            ?? Joined by y,
            Join&y@
            ?? padded to the length of x with y
            PadLeft&y&#x
        ?? Mapped over
        =>
            ?? The elements of x at
            x[
                ?? decreasing range from q to
                q::(
                    ?? each element in the range from q to 0
                    q::0
                )
            ]
}

2

পার্ল 6 , 79 বাইট

->\c{{map {join c,g $_ X||c},g .[^*X+(^$_,)]}o*.comb}
my&g={.[$_-1...0...$_-1]}

এটি অনলাইন চেষ্টা করুন!

নামবিহীন কোডব্লক যা ইনপুট কারিড (যেমন f(char)(string)) নেয় এবং লাইনের একটি তালিকা প্রদান করে। আমি মনে করি একটি ভিন্ন পদ্ধতির সংক্ষিপ্ত হবে।

ব্যাখ্যা:

my&g={.[$_-1...0...$_-1]}  # Helper function to palindromise a list
->\c{                                                }  # Code block that takes a char
     {                                       }o*.comb   # And returns a function
                                .[^*X+(^$_,)]  # Get all prefixes with end padding
                                               # e.g. "str" => [["r",Nil,Nil]
                                                                ["t","r",Nil]
                                                                ["s","t","r"]]
                              g   # Palindromise the lsit
       map {                },    # Map each element to
                     $_ X||c      # Replace all Nils with the character
                   g              # Palindromise it
            join c,               # And join by the character



1

সি # (ভিজ্যুয়াল সি # ইন্টারেক্টিভ সংকলক) , 249 বাইট

s=>c=>{var r=s.Select((x,_)=>{int k=s.Length;var m=s.Substring(_,k-_).Aggregate("",(a,b)=>a+c+b);return new string(m.Skip(2).Reverse().Concat(m.Skip(1)).ToArray()).PadLeft(2*k-3+m.Length,c).PadRight(4*k-3,c);});return r.Skip(1).Reverse().Concat(r);}

এটি অনলাইন চেষ্টা করুন!

এটি অবশ্যই অসম্পূর্ণ হতে হবে ...



1

জাভাস্ক্রিপ্ট (নোড.জেএস) , 143 বাইট

(s,c)=>{q=Math.abs;m=(l=s.length*4-3)-1;for(i=j=0;j<l/2;(i=(++i)%l)?0:++j){p=s[q(i-m/2)/2+q(j-m/4)];process.stdout.write((i?"":"\n")+(p?
p:c))}}

এটি অনলাইন চেষ্টা করুন!

কিছুটা বেশি চিন্তাভাবনা এক-মাত্রিক অ্যারে এবং কম বাইটের ক্ষেত্রে গণনা করতে পরিচালিত করবে।


1

কোটলিন , 250 বাইট

দ্রষ্টব্য: কোটলিন টিও বর্তমানে একটি নতুন শ্রেণিতে ফিরে আসতে ব্যর্থ হয়েছে তাই এই কোডটি একটি নাল পয়েন্টার ব্যতিক্রম পায়। এটি পূর্বে পোস্ট করা কোডগুলির জন্যও ঘটে that সময়ে কাজ করে। আমি ধরে নিলাম এটি শেষ পর্যন্ত সংশোধন হয়ে যাবে তবে সমস্যাটির প্রতিবেদন করার জন্য কোনও সমর্থন যোগাযোগ খুঁজে পেল না। এটি এখানেও চালানো যেতে পারে ।

{s:String,c:Char->val h=s.length*2-1
val w=h*2-1
val m=Array(h){Array(w){c}}
for(i in s.indices)for(r in 0..h-1){val o=(i-Math.abs(h/2-r))*2
if(o>=0){m[r][w/2+o]=s[i].toChar()
m[r][w/2-o]=s[i].toChar()}}
m.map{it.joinToString("")}.joinToString("\n")}

এটি অনলাইন চেষ্টা করুন!


আপনি দি ডিনটিনথ বাইট চ্যাটে @ ডেনিসের সাথে যোগাযোগ করতে পারেন । তিনি টিআইওর পরিচালক। এছাড়াও, আমি আসলে মুদ্রণের পরিবর্তে স্ট্রিংগুলির একটি তালিকা ফেরত দেওয়ার অনুমতি দিই, তাই আমার মনে হয় (নিশ্চিত নয়) আপনি বাইট-কাউন্ট থেকে অপসারণ করতে পারেন (এবং এটি ফুটারে ফাংশনের বাইরে করুন)। .joinToString("\n")
কেভিন ক্রুইজসেন



1

টিএসকিউএল কোয়েরি, 191 বাইট

এমএস-এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিওতে এই কোয়েরিটি চালানোর আগে Ctrl-T টিপুন, এটি আউটপুটটিকে পাঠ্যে পরিবর্তন করবে।

এই স্ক্রিপ্টটি একটি দীর্ঘ "স্ট্রিং" -তে বাম থেকে ডানদিকে আউটপুট তৈরি করছে, প্রতিটি অবস্থানে রাখার জন্য মান গণনা করছে। আউটপুট 4096 টি অক্ষরের মধ্যে সীমাবদ্ধ।

Golfed:

SELECT
string_agg(iif(h>k/2,@y,substring(@,h+1,1))+iif(-~n%k=0,'
',@y),'')FROM(SELECT
abs(k/2-n%k)+abs(k/2-n/k)h,*FROM(SELECT
number n,len(@)*2-1k,*FROM spt_values)c)d
WHERE n<k*k and'P'=type

Ungolfed:

USE master
DECLARE 
@y char='.',
@ varchar(20) = 'abcd'

SELECT
  string_agg(iif(h>k/2,@y,substring(@,h+1,1))+iif(-~n%k=0,'
',@y),'')
FROM
(
  SELECT
    abs(k/2-n%k)+abs(k/2-n/k)h,*
  FROM
  (
    SELECT
      number n,
      len(@)*2-1k,*
    FROM spt_values
  )c
)d
WHERE n<k*k and'P'=type

অনলাইন সংস্করণে আউটপুট ফর্ম্যাট করতে আমাকে কিছু পরিবর্তন করতে হয়েছিল।

এটি অনলাইনে চেষ্টা করুন


1

জাভা (জেডিকে) , 213 199 198 বাইট

a->b->{int i=0,l=a.length()-1;String s=a,r[]=new String[l-~l],p;for(;i<=l;s=s.substring(1))r[l+i]=r[l-i]=new StringBuffer(p=b.join(b,s.split(""))+b.repeat(2*i++)).reverse()+p.substring(1);return r;}

এটি অনলাইন চেষ্টা করুন!

-14 bytes@ কেইলিংক্রাইজসেনকে
-1 byteধন্যবাদ @ সেলিংক্যাটকে ধন্যবাদ

Ungolfed

a->
    b-> {
        int i = 0, l = a.length() - 1;
        String s = a, r[]=new String[a.length()*2-1],p;
        for (; i<=l; s=s.substring(1))
            r[l+i]
              = r[l-i++]
              =   new StringBuffer(
                                   p =   String.join(b,s.split(""))
                                       + b.repeat(2*i)
                                  ).reverse()
                + p.substring(1);
        return r;
    }

1
সুন্দর উত্তর, আপনি 200 এর নিচে 14 বাইট দ্বারা গল্ফ করতে পারেন । :)
কেভিন ক্রুইজসেন

@ কেভিন ক্রুজসেন ভালভাবে চিহ্নিত, ধন্যবাদ!
সারা জে

@ এসিলিংক্যাট ভালো ভাবছেন, ধন্যবাদ!
সারা জে

1

ওল্ফ্রাম ভাষা (গণিত) , 68 বাইট matic

Table[#[[1+Abs@y+Abs@x/2]]/._@__:>#2,{y,l=1-Tr[1^#],-l},{x,2l,-2l}]&

এটি অনলাইন চেষ্টা করুন!

অক্ষরের একটি তালিকা (ফিলার চরিত্রের সাথে) ইনপুট হিসাবে নেয় এবং অক্ষরের একটি ম্যাট্রিক্স আউটপুট দেয়।

Table[                              ,{y,l=1-Tr[1^#],-l},{x,2l,-2l}]&    (* make a (2*len-1 x 4*len-3) table centered at (0,0) *)
      #[[               ]]                                              (*  where the value at each point is the string indexed at *)
         1+Abs@y+Abs@x/2                                                (*   (1 + |y-coordinate| + |x-coordinate|/2) *)
                          /._@__:>#2                                    (*  if that indexing fails, use the filler character instead *)

অক্ষরের তালিকার সূচি নিতে, আমরা ব্যবহার করি list[[index]]যা অভ্যন্তরীণভাবে প্রসারিত Part[list, index]। যদি সূচকটি বৈধ হয়, তবে সেই অভিব্যক্তিটি সেই সূচকের মানটির মূল্যায়ন করে। যদি তা না হয় - যদি সূচকটি পূর্ণসংখ্যা না হয় বা তার সীমা ছাড়িয়ে যায় - এক্সপ্রেশনটি মূল্যহীন থাকে।
সবচেয়ে সহজ (সংক্ষিপ্ততম) প্যাটার্ন যা মিলছে Part[...]তবে একটি চরিত্র নয় _@__, যা এক বা একাধিক যুক্তির সাথে কোনও অভিব্যক্তি মেলে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.