পালি-এন-ড্রাম এই তালিকা


13

এখানে চ্যালেঞ্জটি নিম্নোক্ত ইনপুট হিসাবে দেওয়া প্যালিনড্রোমের একটি বাস্তবায়ন বাড়িয়ে দেওয়া:

  • n > 1এবং একটি তালিকা l

আপনার প্রোগ্রামটি অবশ্যই উল্লম্ব এবং অনুভূমিকভাবে তালিকার তালিকাকে অবশ্যই প্যালিনড্রোম করতে হবে, তার অর্থ এটি প্রথমে তালিকায় নিজেই প্যালিনড্রোম অবশ্যই থাকবে, তারপরে তালিকার প্রতিটি উপাদান থাকবে; কাছাকাছি বা অন্যান্য উপায়. প্যালিনড্রোমাইজেশনের আগে, সমস্ত উপাদান সমান দৈর্ঘ্য হওয়া নিশ্চিত করা হয়। nপছন্দসই আউটপুট পূরণ না হওয়া পর্যন্ত প্যালিনড্রোম ক্রিয়াটি ক্রমানুসারে বার সম্পাদন করতে হবে । প্রত্যাশিত আউটপুটগুলি দেখানোর সহজতম উপায় হ'ল কয়েকটি উদাহরণ দিয়ে চালানো:


একটি পুনরাবৃত্তি এতে সম্পাদিত হয়েছে [123,456,789]:

প্রথমে তালিকা palindromize [123,456,789,456,123]

  • যদিও এটি প্যালিনড্রোম নয় তবে যদি এটি একত্রে যোগ হয় তবে এটি তালিকার দিক থেকে একটি প্যালিনড্রোম।
  • [a,b,c]হয়ে গেছে [a,b,c,b,a], সুতরাং তালিকাটি প্যালেন্ড্রোমাইজড হয়েছিল।

তারপরে, আপনি প্রতিটি তালিকার উপাদানকে প্যালিনড্রোমাইজ করেন [12321,45654,78987,45654,12321]

প্রতিটি পুনরাবৃত্তি এইভাবে করা হয়, এটি মূলত একটি সর্বজনীন প্যালিনড্রোম।


প্রদত্ত n=1 and l=[123,456,789]:

12321
45654
78987
45654
12321

প্রদত্ত n=2 and l=[123,456,789]

123212321
456545654
789878987
456545654
123212321
456545654
789878987
456545654
123212321

প্রদত্ত n=1 and l=[3,2,1]:

3
2
1
2
3

প্রদত্ত n=2 and l=["hat","mad"," a "]:

hatahatah
madamadam
 a a a a 
madamadam
hatahatah
madamadam
 a a a a 
madamadam
hatahatah

প্রদত্ত n=2 and l=[" 3 ","2000"," 100"]:

 3   3 3   3 
2000002000002
100 00100 001
2000002000002
 3   3 3   3 
2000002000002
100 00100 001
2000002000002
 3   3 3   3 

প্রদত্ত n=4 and l=["3 ","20","1 "]:

3 3 3 3 3 3 3 3 3
20202020202020202
1 1 1 1 1 1 1 1 1
20202020202020202
3 3 3 3 3 3 3 3 3
20202020202020202
1 1 1 1 1 1 1 1 1
20202020202020202
3 3 3 3 3 3 3 3 3
20202020202020202
1 1 1 1 1 1 1 1 1
20202020202020202
3 3 3 3 3 3 3 3 3
20202020202020202
1 1 1 1 1 1 1 1 1
20202020202020202
3 3 3 3 3 3 3 3 3
20202020202020202
1 1 1 1 1 1 1 1 1
20202020202020202
3 3 3 3 3 3 3 3 3
20202020202020202
1 1 1 1 1 1 1 1 1
20202020202020202
3 3 3 3 3 3 3 3 3
20202020202020202
1 1 1 1 1 1 1 1 1
20202020202020202
3 3 3 3 3 3 3 3 3
20202020202020202
1 1 1 1 1 1 1 1 1
20202020202020202
3 3 3 3 3 3 3 3 3

প্রদত্ত n=3 and l=["_|__","__|_","___|"]:

_|___|_|___|_|___|_|___|_
__|_|___|_|___|_|___|_|__
___|_____|_____|_____|___
__|_|___|_|___|_|___|_|__
_|___|_|___|_|___|_|___|_
__|_|___|_|___|_|___|_|__
___|_____|_____|_____|___
__|_|___|_|___|_|___|_|__
_|___|_|___|_|___|_|___|_
__|_|___|_|___|_|___|_|__
___|_____|_____|_____|___
__|_|___|_|___|_|___|_|__
_|___|_|___|_|___|_|___|_
__|_|___|_|___|_|___|_|__
___|_____|_____|_____|___
__|_|___|_|___|_|___|_|__
_|___|_|___|_|___|_|___|_

প্রদত্ত n=2 and l=["---|---","__|","___|","____|"]:

---|-----|-----|-----|---
  __|   |__   __|   |__  
 ___|   |___ ___|   |___ 
 ____| |____ ____| |____ 
 ___|   |___ ___|   |___ 
  __|   |__   __|   |__  
---|-----|-----|-----|---
  __|   |__   __|   |__  
 ___|   |___ ___|   |___ 
 ____| |____ ____| |____ 
 ___|   |___ ___|   |___ 
  __|   |__   __|   |__  
---|-----|-----|-----|---

বিধি

  • n সর্বদা 1 এর চেয়ে বড় হবে।
  • l সর্বদা 1 টিরও বেশি উপাদান থাকবে।
  • সমস্ত উপাদান lএকই দৈর্ঘ্য।
  • এটি সংক্ষিপ্ততম সমাধানটি বিজয়ী হিসাবে চিহ্নিত করা হবে।

9
যদি উপাদানগুলিকে প্যাড না করতে হয় তবে এটি আরও ভাল চ্যালেঞ্জ হবে।
mbomb007

2
@ জোনাথান অ্যালান এটি সর্বজনীন প্যালিনড্রোম বা আপনি বলতে পারেন 2 ডি প্যালিনড্রোম। আমি বর্ণনা আপডেট করেছি; এছাড়াও, প্যাডিংটি কয়েকটি অদ্ভুত প্রবণতাগুলি প্রতিরোধ করে যেখানে ছোট স্ট্রিং ইতিমধ্যে একটি প্যালিনড্রোম।
ম্যাজিক অক্টোপাস আরন

1
@ জোনাথান অ্যালান এটি তালিকার সাথে বিবেচনা করুন, যদি আপনি তালিকাটিকে তালিকার মতো আইটেম হিসাবে দেখছেন তবে ঠিক তেমনি [@ 1, @ 2, @ 1] এটিকে একটি প্যালিনড্রোম হিসাবে যখন এটি উপাদান হিসাবে নয়, তালিকা হিসাবে দেখছে ...
ম্যাজিক অক্টোপাস আরন

1
@ জোনাথান অ্যালান হ্যাঁ, আপনি যদি চান তবে আপনি এটির মতো দেখতে পারেন।
ম্যাজিক অক্টোপাস উরন

1
শেষ উদাহরণ প্যাডিং প্রয়োজন।
জোনাথন অ্যালান

উত্তর:


9

05 এ বি 1 ই , 4 বাইট

মনে রাখবেন যে যদি কেবল একটি একক পুনরাবৃত্তি প্রয়োজন হয় ( n=1), তবে প্রোগ্রামটি প্যালিনড্রোম হবে û€û

Fû€û

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

F       Do n times
 û      Palindromize the list
  €û    Palindromize each element in the list

ইনপুট প্যাডিং করা এখনও প্রোগ্রামের প্রয়োজনীয় অংশ ছিল (11 বাইট):

€R.B€RIFû€û

ডান-ন্যায়সঙ্গত করার জন্য আরও ছোট উপায় আমি খুঁজে পাইনি। বাম-ন্যায়সঙ্গতকরণ এবং কেন্দ্রিককরণ সবই সহজ ছিল, তবে এটি কোনও কারণে দীর্ঘ ছিল। ব্যবহারE বা ²পরিবর্তে Iএছাড়াও কাজ করে।


7

পাইথন 2 , 71 63 বাইট

lambda x,n,f=lambda x:x+x[-2::-1]:eval('f(map(f,'*n+`x`+'))'*n)

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

fনিম্নলিখিত প্যাটার্নটি তৈরি এবং মূল্যায়ন করার জন্য একটি প্যালিনড্রোম ফাংশন বরাদ্দ করুন (এর জন্য n=4)
f(map(f,f(map(f,f(map(f,f(map(f,<input>))))))))


1
আমার মনে হয় আপনি অর্থ বরাদ্দ । আমি মনে করি না assing একটি ক্রিয়া, lol।
mbomb007

@ mbomb007 ওয়েলপ, আরও কফি পাওয়ার সময় ~
রড

6

জেলি , 6 বাইট

ŒḄŒB$¡

ডায়াডিক লিঙ্ক, বা সম্পূর্ণ প্রোগ্রাম তালিকা গ্রহণ করে এবং n

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

লিনের দুর্দান্ত বিল্ট-ইন "বাউন্স" এর উভয় সংস্করণ ব্যবহার করা।

ŒḄŒB$¡ - Main link: l, n
     ¡ - repeat n times
    $  -     last two links as a monad (firstly with l then the result...)
ŒḄ     -         bounce ("palindromise") the list
  ŒB   -         bounce the elements

5

পাইথন 2 , 64 বাইট

h=lambda a:a+a[-2::-1]
f=lambda a,n:n and f(h(map(h,a)),n-1)or a

এটি অনলাইন চেষ্টা করুন! - ফুটার ফলাফল তালিকার প্রতিটি উপাদান মুদ্রণ করে, প্রতি লাইনে একটি করে, একটি "সুন্দর মুদ্রণ"।

h প্যালিনডোমাইজেশন ফাংশন, এটি ইনপুটটিতে যুক্ত হয়, শেষের থেকে একটি তালিকার সমস্ত উপাদান, সূচি -২, আকার -১ এর ধাপে শুরু হয়।

fপরিবর্তিত প্রতিটি উপাদানকে hডাকার ফলাফলের সাথে কলগুলি h, nএকের মাধ্যমে হ্রাস পায় এবং n0 এ পৌঁছায় না কেন নিজেকে কল করে , যার পয়েন্টে aসমাপ্ত পণ্য।


... এবং আমি এখনও f=পুনরাবৃত্ত ফাংশনগুলির জন্য ভুলে যাচ্ছি , একদিন আমি মনে করব।
জোনাথন অ্যালান

2

এপিএল, 15 বাইট

(Z¨Z←⊢,1↓⌽)⍣⎕⊢⎕

ব্যাখ্যা:

  • (... )⍣⎕⊢⎕: তালিকাটি পড়ুন এবং Nইনপুট হিসাবে, এবং চালানN বার:
    • ⊢,1↓⌽: তালিকাটি, বিপরীত তালিকার লেজ অনুসরণ করে
    • Z←: এই ফাংশন সংরক্ষণ করুন Z
    • : এবং এটি তালিকার প্রতিটি উপাদানগুলিতেও প্রয়োগ করুন

টেস্ট:

          (ZZ ← ⊢, 1 ↓ ⌽) ⍣⎕⊢⎕ 
    ⎕:
          'টুপি' 'পাগল' 'এ'
    ⎕:
          2
    ┌─────────┬─────────┬─────────┬─────────┬───────── ┬─────────┬─────────┬─────────┬─────────┐
    Aতাহাতাহমদমদমআআআআআআমদমদমহহহহটহমমদমদমআআআআআআমদমমদহহহহঃ
    └─────────┴─────────┴─────────┴─────────┴───────── ┴─────────┴─────────┴─────────┴─────────┘


1

হাস্কেল, 51 বাইট

x%n=iterate((++)<*>reverse.init)x!!n
x?n=(%n)<$>x%n

ব্যবহারের উদাহরণ: ["123","456","789"] ? 1-> ["12321","45654","78987","45654","12321"]এটি অনলাইন চেষ্টা করুন!

(++)<*>reverse.initএকটি তালিকার বাইরে একটি প্যালিনড্রোম তৈরি করে, iterate(...)xএটিকে বারবার পুনরাবৃত্তি করে এবং মধ্যবর্তী ফলাফলগুলি একটি তালিকায় সংগ্রহ করে, !!nএই তালিকার নবম উপাদানটি বাছাই করে। (%n)<$>x%nএর এন-প্যালিনড্রোমের প্রতিটি উপাদানের একটি এন-প্যালিনড্রোম তৈরি করে x


1

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

f=(n,l,r=l=>[...a].reverse().slice(1))=>n--?f(l.concat(r(l)).map(s=>s+r(s).join``),n):l

1

পিপ , 25 বাইট

24 বাইট কোডের, -lপতাকা জন্য +1 ।

Lq{gM:_.@>RV_gAL:@>RVg}g

কমান্ড-লাইন আর্গুমেন্ট এবং স্টিডিন থেকে n নম্বর হিসাবে তালিকাটি নেয় । এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

                          g is list of cmdline args (implicit)
Lq{                   }   Read a line of input and loop that many times:
      _.@>RV_             Lambda function: take all but the first character (@>) of the
                           reverse (RV) of the argument (_), and concatenate that (.) to
                           the argument (_)
   gM:                    Map this function to g and assign the result back to g
                 @>RVg    Take all but the first element of the reverse of g
             gAL:         Append that list to g and assign the result back to g
                       g  After the loop, print g (each item on its own line due to -l)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.