একটি alতু উপস্থিত মোড়ানো


21

কার্য

একটি মোড়কের উপাদান এবং একটি নন-জ্যাগড 3 ডি অ্যারে দেওয়া হয়েছে, অ্যারের শীর্ষ, নীচে এবং চারপাশে মোড়ানো। আপনার অবশ্যই অক্ষর এবং সংখ্যাসূচক উভয় ডেটা হ্যান্ডেল করতে হবে, তবে মোড়ক এবং বর্তমানের একই ডেটা টাইপ থাকবে।


চরিত্র উদাহরণ

চরিত্রের ডেটার জন্য, আপনি একক অক্ষরের 3 ডি অ্যারে বা স্ট্রিংগুলির 2 ডি অ্যারে হ্যান্ডেল করতে পছন্দ করতে পারেন:

2 স্তর, 2 সারি, 4 কলামের অক্ষর অ্যারে দেওয়া হয়েছে

[[["Y","o","u","r"],
  ["g","i","f","t"]],

  [["g","o","e","s"],
  ["h","e","r","e"]]]

এবং চরিত্রটি ".", 4 স্তর, 4 সারি, 6 কলামের অক্ষরের অ্যারের উত্তর দিন

[[[".",".",".",".",".","."],
  [".",".",".",".",".","."],
  [".",".",".",".",".","."],
  [".",".",".",".",".","."]],

 [[".",".",".",".",".","."],
  [".","Y","o","u","r","."],
  [".","g","i","f","t","."],
  [".",".",".",".",".","."]],

 [[".",".",".",".",".","."],
  [".","g","o","e","s","."],
  [".","h","e","r","e","."],
  [".",".",".",".",".","."]],

 [[".",".",".",".",".","."],
  [".",".",".",".",".","."],
  [".",".",".",".",".","."],
  [".",".",".",".",".","."]]]

বা 2-সারি, 4-বর্ণের স্ট্রিংগুলির 2 কলামের অ্যারে দেওয়া হয়েছে

[["Your",
  "gift"],

 ["goes",
  "here"]]

এবং চরিত্রটি ".", 4 টি সারি, 6-অক্ষরের স্ট্রিংয়ের 4 কলামের অ্যারের উত্তর দিন

[["......",
  "......",
  "......",
  "......"],

 ["......",
  ".Your.",
  ".gift.",
  "......"],

 ["......",
  ".goes.",
  ".here.",
  "......"],

 ["......",
  "......",
  "......",
  "......"]]

সংখ্যার উদাহরণ

2 স্তর, 2 সারি, 2 কলাম সংখ্যার অ্যারে দেওয়া হয়েছে

[[[1,2],
  [3,4]],

 [[5,6],
  [7,8]]]`

এবং সংখ্যাটি 04 স্তর, 4 সারি, 4 কলাম সংখ্যার অ্যারে উত্তর দিন

[[[0,0,0,0],
   [0,0,0,0],
   [0,0,0,0],
   [0,0,0,0]],

  [[0,0,0,0],
   [0,1,2,0],
   [0,3,4,0],
   [0,0,0,0]],

  [[0,0,0,0],
   [0,5,6,0],
   [0,7,8,0],
   [0,0,0,0]],

  [[0,0,0,0],
   [0,0,0,0],
   [0,0,0,0],
   [0,0,0,0]]]

মোড়ানোর জন্য আমরা প্রতিটি "উপহার উপাদান" এর দৈর্ঘ্যটি অভিন্ন বলে ধরে নিতে পারি?
XavCo7

@ জাভকো 7 হ্যাঁ আপনি পারেন।
অ্যাডম


কি ধরণের আউটপুট গ্রহণযোগ্য। এটি একটি তিন ডি অ্যারের একটি ডেটাস্ট্রাকচার হতে পারে বা পাঠ্য আউটপুট গ্রহণযোগ্য
রোহান ঝুনঝুনওয়ালা

@ রোহানঝুনঝুনওয়ালা আপনি নির্দ্বিধায় প্রতিনিধিত্ব চয়ন করতে পারেন, তবে ইনপুট এবং আউটপুট ফর্ম্যাটগুলি অবশ্যই একই হবে।
অ্যাডম

উত্তর:


8

জে , 16 15 বাইট

[h"2[h"1 h=.,,[

এটি একটি বেনাম ক্রিয়া। এটি অনলাইন চেষ্টা করুন!

আদমকে 1 বাইটের জন্য ধন্যবাদ!

ব্যাখ্যা

[h"2[h"1 h=.,,[  Wrapper is x, present is y.
            ,    Prepend x to y
             ,   then append
              [  x.
                 This gives x y x, and the wrapper automatically spreads to form 2D slices.
         h=.     Save the above operation (not its result) to h.
    [h"1         Apply h to x and every 2D slice of the previous result.
[h"2             Apply h to x and every 1D slice of the result of that.

আপনি কী দিয়ে কোনও বাইট সংরক্ষণ করতে পারেন নিh=.,,[
অ্যাডম

4

জাভাস্ক্রিপ্ট (ES6), 97 বাইট

(a,e)=>[c=[,,...b=a[0]].fill(d=[,,...b[0]].fill(e)),...a.map(a=>[d,...a.map(a=>[e,...a,e]),d]),c]

aত্রি-মাত্রিক অ্যারে যেখানে এবং eমোড়ক। স্ট্রিংয়ের দ্বি-মাত্রিক অ্যারেটি স্বয়ংক্রিয়ভাবে অক্ষরের ত্রিমাত্রিক অ্যারে রূপান্তর করে। এর জন্য বিকল্প সংস্করণ যখন aদ্বি-মাত্রিক স্ট্রিং এবং eএকটি অক্ষর এবং আপনি একটি দ্বি-মাত্রিক স্ট্রিংটি ফিরে আসতে চান:

(a,e)=>[c=[,,...a[0]].fill(d=e.repeat(a[0][0].length+2)),...a.map(b=>[c,...b.map(s=>e+s+e),d]),c]

দেখে মনে হচ্ছে এটি সংখ্যায় ব্যর্থ e
অ্যাডম

@ আদম আহ, দুঃখিত, আমি প্রশ্নটি ভুল বুঝে থাকতে পারি।
নিল

@ অ্যাডম নতুন সংস্করণ, ভাগ্যক্রমে একই বাইট গণনাটি সালিশি উপাদানগুলির ত্রি-মাত্রিক অ্যারেগুলিতে কাজ করে (অক্ষরের অ্যারেগুলিতে স্বতন্ত্র রূপান্তরিত করবে)।
নীল

3

অক্টাভা, 23 27 বাইট

@(a,p)padarray(a,[1 1 1],p)

অ্যারে: a
প্যাডওয়াল:p

এটি হিসাবে বলা যেতে পারে:

(@(a,p)padarray(a,[1 1 1],p))([1 2;3 4],40)

চেষ্টা করুন (পেস্ট!) এটি অক্টাভ অনলাইন এ

দ্রষ্টব্য: পূর্ববর্তী উত্তর অনুমিত ডিফল্ট প্যাভাল val


দেখে মনে হচ্ছে এটি কেবল একটি একক যুক্তি (অ্যারে) গ্রহণ করে। এটি মোড়ানো চরিত্র / নম্বর কোথা থেকে পাওয়া যায়?
স্মিলস্

ডিফল্টরূপে ফাংশন প্যাড 0
rahnema1

@ rahnema1 তাহলে প্যাডিং 42, বা "জেড" হলে কী হবে?
অ্যাডম

ওহ ... উত্তর প্যাডওয়াল সহ আপডেট হয়েছে
rahnema1

1
+1 আমি অবাক হই যে ঠিক এর জন্য একটি অন্তর্নির্মিত আছে।
অ্যাডম

3

পাইথন, 106 104 126 বাইট

def w(g,c):x=len(g[0][0])+2;k=[[c*x]*(len(g[0])+2)];return k+[[c*x,*[c+"".join(str(k)for k in j)+c for j in i],c*x]for i in g]+k

হিসাবে ডাকা হয় w(gift, wrapping character)। স্ট্রিং এবং অ্যারের স্বরলিপি ব্যবহার করতে পারেন। এটি অনলাইন চেষ্টা করুন!


Repl.it এ কীভাবে এটি চালানো যায় তা আমি বুঝতে পারি না আপনি একটি লিঙ্ক তৈরি করতে পারেন?
অ্যাডাম

@ অ্যাডাম repl.it/Eu4M/1
TidB

ধন্যবাদ। সংখ্যা ব্যর্থ বলে মনে হচ্ছে
অ্যাডম

@ অ্যাডাম গোটচা, আমি স্পেসিফিকেশনটির ভুল ব্যাখ্যা (হি) করেছি। সামান্য দীর্ঘতর এখন, তবে এটি আসলে সঠিকভাবে কাজ করে> repl.it/Eu4M/4
TidB

বাহ, এখন আপনি চশমা ছাড়িয়ে গেলেন, আপনার মিশ্র ডেটা টাইপ কেস হ্যান্ডেল করার দরকার নেই।
অ্যাডম

3

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

->\a,\w{my @z=[[w xx a[0;0]+2]xx a[0]+2]xx a+2;@z[1..a;1..a[0];1..a[0;0]]=a[*;*;*];@z}

একটি ল্যাম্বডা যা 3 ডি অ্যারে এবং মোড়ক চরিত্রটিকে আর্গুমেন্ট হিসাবে গ্রহণ করে।

  • এটি প্রথমে মোড়ের অক্ষর দ্বারা পূর্ণ, সঠিক আকারের একটি 3 ডি আউটপুট অ্যারে তৈরি করে।
  • তারপরে এটি অ্যারে স্লাইস সিনট্যাক্স ব্যবহার করে মূল অ্যারের মানগুলি নতুন অ্যারের সঠিক স্লটগুলিতে অর্পণ করতে একের মধ্যে ঝরে পড়ে।

3

ডায়ালগ এপিএল , 31 19 13 12 বাইট

@ জাগারব এর সমাধানটির প্রায় একটি লিখিত লিপি (31 বাইট) ।

একটি বেনামে ফাংশন। বাম আর্গুমেন্ট মোড়ানো হয়, ডান যুক্তি উপহার।

h1h2(h←⍪⍪⊣)

⊣h⍤1 h প্রয়োগ করা হয়েছে, বেনামে ফাংশনটির বাম আর্গুমেন্টের সাথে, এর কলামগুলিতে

⊣h⍤2 এইচ প্রয়োগ করা হয়েছে, বেনামে ফাংশনটির বাম যুক্তি সহ, সারিগুলিতে

h← প্রধান কোষ প্রয়োগ বেনামী ফাংশনের আর্গুমেন্ট স্তর অর্থাৎ, যেখানে হয়

বাম আর্গুমেন্টটি ডান আর্গুমেন্টকে চাপিয়ে দেয়

প্রতিশোধ

বাম যুক্তি

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

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


এই ডায়ালগ এপিএল সংস্করণ 16.0 সমাধান (19 বাইটস - @ জিএনজির সৌজন্যে ) যে কোনও পরিমাণের মাত্রা পরিচালনা করে:

{⍵@(1+⍳⍴⍵)⊢⍺⍴⍨2+⍴⍵}

উপহারটি

@( স্থাপন করা

1+ এক প্লাস

সমস্ত সূচক

⍴⍵ উপহার আকার

)⊢ অ্যারে সমন্বয়ে

⍺⍴⍨ মোড়কে আকারে আবার আকার দেওয়া হয়েছে

2+ দু'জন যুক্ত হয়েছে

⍴⍵ উপহার আকার

অন্য কথায়, আমরা পুরোভাবে মোড়কের উপাদানগুলির একটি অ্যারে তৈরি করি, যা প্রতিটি মাত্রায় উপহারের চেয়ে দুটি উপাদান বড় হয়, তারপরে আমরা উপহারটিকে সেই অ্যারেতে রাখি (সুতরাং এই পদগুলিতে মোড়কের উপাদানগুলি প্রতিস্থাপন করে) এর একটি অফসেটে রাখি the প্রান্তগুলি, অর্থাৎ কেন্দ্রে।


আমার নিজস্ব আবিষ্কার ( @1nn এর জন্য ধন্যবাদ ):

(⌽2 3 1⍉,)⍣6

এটি একটি বেনাম ফাংশন-ট্রেন 6 বার প্রয়োগ করে, প্রতিবার মোড়কের সাথে বাম আর্গুমেন্ট হিসাবে এবং ডান আর্গুমেন্ট হিসাবে আগের অ্যাপ্লিকেশনটির ফলাফল (যদিও এর চারপাশে প্রথমবার অবিস্মরণীয় উপহার হবে):

( একটি বেনামে ফাংশন ট্রেন

বিপরীত কলাম

2 3 1⍉ সারি-থেকে-স্তর, কলাম-থেকে-সারি, স্তর-থেকে-কলামগুলিতে স্থানান্তর

, উপহার পরে র‌্যাপার

)⍣6 ছয়বার প্রয়োগ

অন্য কথায়, আমরা অ্যারের উপরে র‌্যাপারের একটি স্তর যুক্ত করি, তারপরে এটি রেপ করে রাখি যাতে পাশের পাশটি শীর্ষ স্তর অবস্থানে ঘোরানো হয়, অন্য মোড়কের মোড়কের জন্য প্রস্তুত। এটি ছয়বার পুনরাবৃত্তি হয়, চূড়ান্ত ওয়ারপিংয়ের সাথে সমস্ত অক্ষকে মূল ক্রমে স্থান দেয়।

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



1

রুবি, 89 বাইট

->a,b{(w=[[z=b*2+a[0][0].tr('^|',b)]*(2+a[0].size)])+a.map{|x|[z]+x.map{|y|b+y+b}+[z]}+w}

আমি কি কখনও তোমাকে বলেছি যে আমি এখানে রুবি শিখতে এসেছি? :-)

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