ইনসক্রিপশন লাইব্রেরিকা


22

আস্তুরিয়াসের রাজা সিলোর সমাধিস্থলে শিলালিপি রয়েছে যা সিলো প্রিন্সেপস ফেটিইট পড়েছিল ( কিং সিলো এটি তৈরি করেছিলেন )।

সিলো প্রিন্সেপস ফেস্টিট

প্রথম অক্ষরটি একেবারে মাঝখানে পাওয়া যায় এবং সেখান থেকে কোনওটি বাইরের দিকে বিচ্ছুরিত কোনও অ-তির্যক দিক দিয়ে পাঠ করে। চূড়ান্ত চিঠিটি চারটি কোণে পাওয়া যায়। এই চ্যালেঞ্জের মধ্যে আপনি এগুলি তৈরির প্রক্রিয়াটি সাধারণকরণ করবেন।

ইনপুট

একটি স্ট্রিং ( বা সমতুল্য ), এবং একটি পূর্ণসংখ্যা। আপনি ইনপুট সম্পর্কে নিম্নলিখিত অনুমানগুলি করতে পারেন:

  • স্ট্রিংটির একটি বিজোড় দৈর্ঘ্য থাকবে।
  • পূর্ণসংখ্যাটি স্ট্রিংয়ের দৈর্ঘ্যের দ্বিগুণের চেয়ে কম 1 এবং একের মধ্যে একটি বিজোড় সংখ্যা হবে।

আউটপুট

উচ্চতা বা প্রস্থের জন্য পূর্ণসংখ্যা ব্যবহার করে স্ট্রিংয়ের জন্য একটি লিপিবদ্ধ গোলকধাঁধা (উচ্চতার উদাহরণগুলির জন্য মডেলগুলি দেখুন)। আউটপুট কোনও অক্ষর ছাড়াই প্রতিটি অক্ষর হওয়া উচিত, আপনার সিস্টেম / ভাষার ডিফল্ট হিসাবে লাইন ব্রেক break

পরীক্ষার মামলা

নোট করুন যে 1 বা (দৈর্ঘ্য * 2 - 1) এর একটি ইনপুট ফলাফল হিসাবে একটি অনুভূমিক বা উল্লম্ব প্যালিনড্রোম হবে।

 Input: FOO, 3    Input: BAR, 1    Input: BAR, 3    Input: BAR, 5

Output: OOO      Output: RABAR    Output: RAR       Output: R
        OFO                               ABA               A
        OOO                               RAR               B
                                                            A
                                                            R

 Input: ABCDE, 5   Input: ABCDE, 3   Input: *<>v^, 5

Output: EDCDE     Output: EDCBCDE           ^v>v^
        DCBCD             DCBABCD           v><>v
        CBABC             EDCBCDE           ><*<>
        DCBCD                               v><>v
        EDCDE                               ^v>v^

স্কোরিং

এটি তাই বাইট জিতে সংক্ষিপ্ত উত্তর। স্ট্যান্ডার্ড লুফোলস নিষিদ্ধ।



ইনপুটটিতে কি স্পেস থাকতে পারে? যদি তা হয় তবে সেগুলি কীভাবে পরিচালনা করা উচিত?
নাইট্রডন

1
আমরা কি অক্ষরের তালিকা হিসাবে ইনপুট নিতে পারি?
রবিন রাইডার

1
@ চার্লি স্পষ্টতই আমার সমস্ত পার্ল answers উত্তর মিস করছি :-) স্পেনের পঞ্চম রাজা দ্বারা অনুপ্রাণিত হওয়ায় আমিও আপনার কাছ থেকে একটি উত্তর প্রত্যাশা করছি (ভাল, অ্যাথরিজসের, তবে অ্যাথুরিজস ই এস্পিয়া, ওয়াই তোলো ডেমসস টায়রা ফ্রিস্টিও হা হা)
user0721090601

1
আমরা কি উচ্চতার পরিবর্তে প্রস্থ নিতে পারি?
attinat

উত্তর:


6

জে , 27 বাইট

([{~]+/&(|@i:)#@[-1+])-:@<:

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

একটি উদাহরণ উচ্চ স্তরের পদ্ধতির স্পষ্ট করবে।

বিবেচনা 'ABCDE' f 3

আমরা লক্ষ্য করি যে আমরা যা খুঁজছি তা কেবল "ক্রস সংযোজন" সারণী 1 0 1এবং 3 2 1 0 1 2 3যা দেখতে এটির মতো দেখাচ্ছে:

4 3 2 1 2 3 4
3 2 1 0 1 2 3
4 3 2 1 2 3 4

আমরা তখন মূল পংক্তি থেকে যারা ইনডেক্স টান: [{~

সকল কোড বাকি শুধু গাণিতিক বিরক্তিকর এবং ব্যবহারের i:আর্গুমেন্ট গঠন করা 1 0 1এবং 3 2 1 0 1 2 3


6

জেলি , 12 বাইট

Uṡṛ‘HɗŒBŒḄZY

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

একটি ডায়াডিক লিঙ্কটি তার ডান আর্গুমেন্ট হিসাবে স্ট্রিংটিকে তার বাম এবং উচ্চতা হিসাবে গ্রহণ করে। লাইন ব্রেকগুলির সাথে একটি স্ট্রিং ফিরিয়ে দেয়। যদি স্ট্রিংগুলির একটি তালিকা আউটপুট জন্য গ্রহণযোগ্য হয়, আমি চূড়ান্ত Yসংরক্ষণ বাইট অপসারণ করতে পারি । মজার বিষয় হ'ল মূল "সিলো প্রিন্সেপস ফেটিট" টিআইও-তে যখন দেখি তখন এটি থ্রিডি হীরার ASCII শিল্পের মতো লাগে।

ব্যাখ্যা

U            | Reverse input
 ṡ   ɗ       | All overlapping substrings of the length given by:
  ṛ          | - The right argument
   ‘         | - Incremented by 1
    H        | - Halved
      ŒB     | Concatenate to the reverse, keeping a single copy of the last character (so creating a palindrome)
        ŒḄ   | Do the same, but this time using the lists of characters generated by the last atom
          Z  | Transpose
           Y | Join with newlines

2
আমি এটি দেখার চেষ্টা করে ক্লিক করেছি এবং হ্যাঁ, এটি 3 ডি করে। অদ্ভুত তবে শীতল।
ব্যবহারকারী 0721090601

6

আর , 93 91 87 বাইট

-2 বাইট জিউসেপ্পিকে ধন্যবাদ ওপির অনুমতি অনুসারে উচ্চতার চেয়ে প্রস্থকে ইনপুট করে -4 বাইট

function(s,W,w=W%/%2,h=length(s)-w-1)write(s[1+outer(abs(-w:w),abs(-h:h),`+`)],1,W,,"")

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

অক্ষরের ভেক্টর হিসাবে ইনপুট নেয়। মূল অংশটি হ'ল s[1+outer(abs(-w:w),abs(-h:h),'+')]

wh(2w+1)×(2h+1)

(i,j)1+|ih|+|jw|abs(-w:w)abs(-h:h)abs(-h:h)[h,h1,h2,,2,1,0,1,2,,h1,h]outer(abs(-2:2), abs(-1:1), '+')

32123
21012
32123

(আমাদের তখন 1 টি যুক্ত করা দরকার কারণ আর 1-সূচকযুক্ত)) কেন্দ্রে 0 0 ইনপুটটির প্রথম অক্ষরটি যেখানে যাওয়া উচিত।

বাকীটি ফর্ম্যাট করছে।


5

কাঠকয়লা , 25 19 বাইট

E⊘⊕η✂θι⁺ι⁻Lθ⊘⊖η‖O←↑

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। ব্যাখ্যা:

E⊘⊕η✂θι⁺ι⁻Lθ⊘⊖η

শিলালিপিটির এক চতুর্থাংশ আঁকো।

‖O←↑

শিলালিপিটি সম্পূর্ণ করতে প্রতিফলিত করুন।


1
চিত্তাকর্ষক! আমি সাইটে নতুন, আমি যদি আগে থেকে দু'জন বোবা প্রশ্ন অনুসরণ করি তবে আমি আগে থেকে ক্ষমা চাই। 1. এগুলি অবশ্যই 19 টি অক্ষর, তবে সেগুলিও 19 বাইট? এবং ২. কোন এনকোডিংয়ে সেই পাঠ্যটিতে 19 বাইট লাগবে?
Damix911

হ্যাঁ, ইউটিএফ -8 এ এনকোড করা এটি 19 টি অক্ষর নেবে , তবে বাস্তবে 51 বাইট লাগবে । ইউটিএফ -16 দিয়ে, এটি এখনও এনকোডে 39 বাইট নেয় ।
রুহোলা

1
@ Damix911 কাঠকয়ালের নিজস্ব এনকোডিং রয়েছে, যা এর উইকিতে পাওয়া যাবে। আমি মনে করি কোড পৃষ্ঠার বাইরের অক্ষরের জন্য 3 বাইট খরচ হয়। ডিভেরবোসিফায়ার সঠিক দৈর্ঘ্য গণনা করার চেষ্টা করে তবে এটি প্রকৃত এনকোডিংয়ে প্রতিলিখনকে বিরক্ত করে না, যা বিরক্তিকর।
নীল

1
@ নীল ওকে, মনে হচ্ছে আইন!
রুহোলা

3

জাপট -R , 19 16 বাইট

z
ò@VÔtXUaVÊ)êÃê

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

z\nò@VÔtXUaVÊ)êÃê     :Implicit input of integer U & string V
z                     :Floor divide U by 2
 \n                   :Reassign result to U
   ò                  :Range [0,U]
    @                 :Map each X
     VÔ               :  Reverse V
       tX             :  Substring from index X to index ...
         Ua           :    Absolute difference between U and ...
           VÊ         :    Length of V
             )        :  End substring
              ê       :  Palindromise
               Ã      :End map
                ê     :Palindromise
                      :Implicit output, joined by newlines

2

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

(g=Reverse@Rest@#~Join~#&)@BlockMap[g,#,⌈#2/2⌉,1]&

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

ইনপুট হিসাবে প্রস্থ নেয়।


1
@ লিরিটোসিস্ট তারপর ফাংশনটি প্রথমবার gবলা হওয়ার পরে প্রথমটি মূল্যায়ন করা হয় না। এটি অনলাইন চেষ্টা করুন!
attinat

আকর্ষণীয়, কোনও ধারণা আপনি যখন @@ বা অনুষ্ঠ ব্যবহার করবেন তখন কেন এটি কাজ করে?
lirtosiast

@ লিরিটোসিস্ট এটি মনে করে Print/@f[...]-> Print/@Transpose[g[...]]-> Transpose[Print@g[...]]যার দ্বারা সময় gনির্ধারিত হয়।
এটিনিট

2

জাপট -R , 10 বাইট

Ôã°Vz)mê ê

উচ্চতার পরিবর্তে প্রস্থ নেয়।

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

সিউডোকোড (ইউ স্ট্রিং, ভি পূর্ণসংখ্যা):

U.Reverse().AllSubstringsOfLength(++V / 2).Map(Palindromize).Palindromize

নিস! এটিকে পাশের পাশে তৈরি করার চেষ্টা করার জন্য আমার কাছে কখনও আসেনি।
শেগি


2

পাইথন 3, 104 বাইট

আমি এতক্ষণ গল্ফ খেলিনি ... আমি নিশ্চিত যে এটি আরও কম হতে পারে।

বিস্তারিত

এই কোডটি একটি ফাংশন সংজ্ঞায়িত করে যা দুটি আর্গুমেন্ট (স্ট্রিং এবং উচ্চতা) নেয় এবং স্ট্যান্ডার্ড আউটপুটে ফলাফল দেয়।

স্ট্রিংয়ের সূচকটি গ্রিডের কেন্দ্র থেকে ম্যানহাটনের দূরত্ব। প্রস্থের একটি গ্রিড জন্য wএবং উচ্চতা hএ কক্ষের জন্য দূরত্ব (x, y)হয় abs(x - (w - 1) / 2) + abs(v - (h - 1) / 2)

গ্রিডের প্রস্থ অবশ্যই এমন হতে হবে যে কোণগুলির ম্যানহাটনের দূরত্ব (বলুন (0, 0)) স্ট্রিংয়ের দৈর্ঘ্যের চেয়ে কম less (0, 0)উপরের প্রতিস্থাপন এবং সরলকরণে আমরা দেখতে পেলাম যে প্রস্থটি সরল 2 * len(s) - h

কোড

def b(s,h):
 w=2*len(s)-h
 for y in range(h):print(''.join(s[abs(x-w//2)+abs(y-h//2)]for x in range(w)))

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



1

পাইথ , 19 বাইট

L+_btbjyyM.:Q-lQ/E2

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

L+_btbjyyM.:Q-lQ/E2   Implicit: Q=string, E=height
L                     Define a function, y(b):
  _b                    Reverse b
 +  tb                  Append all be first element of b
                      y is now a palindromisation function
              lQ      Length of Q
             -  /E2   Subtract floored division of E by 2
          .:Q         All substrings of Q with the above length
        yM            Palindromise each substring
       y              Palindromise the set
      j               Join on newlines, implicit print



1

সি # (.নেট কোর) , 146 বাইট

s=>n=>{int w=s.Length*2-n,i=0,j;var r=new char[n,w];for(;i<n;i++)for(j=0;j<w;)r[i,j]=s[System.Math.Abs(n/2-i)+System.Math.Abs(w/2-j++)];return r;}

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

দীর্ঘতম উত্তর। :-) এটি স্কয়ারের মাঝখানে ম্যানহাটনের দূরত্ব ব্যবহার করে। যদিও একটি ছোট উপায় থাকতে হবে।


1

টিসিএল , 188 170 162 বাইট

{{w s} {join [lmap C [lrepeat $w string] {join [$C reverse [set y [$C range $s [set x [expr abs($w/2+1-[incr i])]] end-[expr $w/2-$x]]]][$C range $y 1 end]}] \n}} bytes

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

টিসিএলে এই সমস্যাটি গল্ফ করার জন্য এক মিলিয়ন খারাপ উপায় রয়েছে বলে মনে হচ্ছে। এটি তাদের মধ্যে সবচেয়ে খারাপ নয়।

ল্যাম্বডায় রূপান্তর করে ন্যূনতম 18 বাইট সংরক্ষণ করা হয়েছে (লাইনের তালিকার রিটার্ন মানটি গ্রহণযোগ্য হলে 13 টি পর্যন্ত বেশি সঞ্চয় করতে পারে)

Lmap পুনরাবৃত্তকারী অতিরিক্ত ধ্রুবক হিসাবে পরিবেশন করায় একটি অতিরিক্ত 8 সংরক্ষণ করা হয়েছে


1

ক্যানভাস , 18 বাইট

±X↕┌L╵┌-Y{x;1y1@]┼

এখানে চেষ্টা করুন!

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

দেখে মনে হচ্ছে এটি আসলে ঠিক তেমন কাজ করে না যা আমি ভেবেছিলাম: ক্যানভাসের প্যালিনড্রাইজ ফাংশনগুলি নির্দিষ্ট অক্ষরগুলিকে আয়না করে (যেমন ভি মিররড উল্লম্বভাবে ^ হয়ে যায়), এবং আমি ঠিক এটি অক্ষম করতে পারি না ... ওহ ভাল, আমার ধারণা


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