জে, 54 বাইট
[:|:|.@i.@#(>@],~' '#~[)"_1[:(,' '&,)/&.>>:@i.@#<@#"0]
এটি অনলাইন চেষ্টা করুন!(দ্রষ্টব্য যে টিআইওতে আউটপুটটির একটি নতুন লাইন এবং তিনটি স্পেস রয়েছে, তবে এটি ফাংশন কল থেকে নয় - এটি সম্ভবত জে ইন্টারপ্রেটার স্বয়ংক্রিয়ভাবে করে)
আমি মনে করি এটি সমাধানের জন্য সাধারণ ধারণাটি সঠিক, তবে এখানে ছোট ছোট জিনিস রয়েছে যা আমি সম্ভবত উপ-অনুকূলভাবে করছি যা বাইটোকন্টে যুক্ত হচ্ছে।
পূর্ববর্তী রূপগুলি
55 বাইট
<:@+:@#{.[:|:|.@i.@#(],~' '#~[)"_1>:@i.@#(,' '&,)/@#"0]
56 বাইট
<:@+:@#{.[:|:|.@i.@#(],~' '#~[)"_1#{.[:(,' '&,)//.[:]\.]
ব্যাখ্যা
এটি কয়েকটি ফাংশনে বিভক্ত হবে। এছাড়াও, আমি ব্যাখ্যার পরবর্তী অংশগুলির সাথে পুরোপুরি ছিল না, সুতরাং আপনি যদি নির্দিষ্ট অংশের জন্য আরও ভাল ব্যাখ্যা চান এবং আমাকে এটি সম্পাদনা করতে পারি তবে আমাকে জানান let
dup =. >:@i.@# <@#"0 ]
space =. (,' '&,)/&.>
pad =. |.@i.@# (>@],~' '#~[)"_1 ]
trans =. |:
dup
প্রতিটি অক্ষরটিকে তার সূচীতে স্ট্রিংয়ের (বহুসংখ্যক) বহুবার নকল করে
space
প্রতিটি চরিত্রের মধ্যে ফাঁকা স্থান সন্নিবেশ করানো হয়
pad
স্থানগুলিতে সঠিক পরিমাণে অক্ষরগুলি প্যাড করে
trans
ফলাফল ম্যাট্রিক্স স্থানান্তর
নমুনা কল:
trans pad space dup 'abc'
c
b
a c
b
c
DUP
>:@i.@# <@#"0 ]
>:@i.@# Indices of each character plus one
# Length of the string
i. Range [0,length)
>: Add one
<@#"0 ] Duplicate each character as many times as it index (plus one)
"0 For each
# ] Copy the character
>:@i.@# as many times as it index
< Box the result
ফলাফলগুলি বাক্সে ফাঁকা স্থানগুলি (যেহেতু তারা অসম দৈর্ঘ্যের) এর প্রান্তগুলি প্যাডিং থেকে আটকাতে বাধা দেয়।
নমুনা কল:
dup 'abc'
┌─┬──┬───┐
│a│bb│ccc│
└─┴──┴───┘
স্থান
(,' '&,)/&.>
&.> For each boxed element
(,' '&,)/ Insert spaces between each
নমুনা কল:
space dup 'abc'
┌─┬───┬─────┐
│a│b b│c c c│
└─┴───┴─────┘
প্যাড
|.@i.@# (>@],~' '#~[)"_1 ]
(>@],~' '#~[) Pad the right arg with spaces given by the left arg
|.@i.@# Indices in reverse order
i. # Range [0,length)
|. Reverse
মূলত, দৈর্ঘ্যের সাথে প্রথম উপাদানটি প্যাড করুন - 1 স্পেস, দ্বিতীয় দৈর্ঘ্য - 2 ইত্যাদি It এটি বক্সিংও সরিয়ে দেয়।
নমুনা কল:
pad space dup 'abc'
a
b b
c c c
পক্ষান্তরিত করা
এটি কেবল অন্তর্নির্মিত ফাংশন |:
যা কোনও ম্যাট্রিক্সের স্থানান্তর গ্রহণ করে takes