জিএনইউ সেড , 178 158 132 + 1 = 133 বাইট
-r
পতাকা জন্য +1 বাইট ।
s/(.)(.*)(.)/ \1\n\2;\3/
:
s/( *)(.\n.)(.*)(...);(.*)(.)/\1\2\1 \6\n\3;\4\5/m
t
:A
s/(.*\n)( *)(.*);/ \2;\1\2\3/m
tA
s/. (.)$/\1/gm
এটি অনলাইন চেষ্টা করুন!
ব্যাখ্যা
ইন পূর্ববর্তী পুনর্বিবেচনা আমি গণিত, বিশেষ ক্ষেত্রে, এবং পরিষ্করণ সঙ্গে তার আচরণ বাইটের অনেক ব্যবহার, যদিও, intuitively আমি নিশ্চিত তারা এড়িয়ে চলা যাবে না। আমি তখন থেকে বেশিরভাগ ক্ষেত্রেই তা পরিচালনা করেছি।
ধরুন আমাদের ইনপুট আছে abcdEFGHIJKLMnop
। অক্ষরগুলি EFGHIJKLM
ত্রিভুজের নীচে হবে, সুতরাং আমি সেগুলি ভিজ্যুয়াল সহায়তা হিসাবে মূলধন করে।
প্রথমে আমরা প্রথম অক্ষরটিকে তার নিজস্ব লাইনে স্থাপন করে ইনপুটটি প্রস্তুত করি (একটি স্থান পূর্ববর্তী) এবং ;
শেষ অক্ষরের আগে কার্সার ( ) সন্নিবেশ করিয়ে :
s/(.)(.*)(.)/ \1\n\2;\3/
এখন আমাদের আছে:
a
bcdEFGHIJKLMno;p
এখন, একটি লুপে, আমরা শেষ লাইনে কয়েকটি জিনিস করতে যাচ্ছি: ১. পূর্ববর্তী লাইন থেকে স্পেসগুলি অনুলিপি করুন এবং প্রথম অক্ষর পরে দুটি সন্নিবেশ করান; ২. শেষ অক্ষরটি ফাঁকা স্থানের পরে ডানদিকে সরান, তারপরে একটি নতুন লাইন; এবং 3. কার্সারটি তিনটি অক্ষরে বামে সরান।
:
s/( *)(.\n.)(.*)(...);(.*)(.)/\1\2\1 \6\n\3;\4\5/m
t
প্রতিটি পুনরাবৃত্তির ফলাফল এখানে:
a
b p
cdEFGHIJKL;Mno
a
b p
c o
dEFGHI;JKLMn
a
b p
c o
d n
EF;GHIJKLM
আপনি দেখতে পাবেন পিরামিডটি আকার নিতে শুরু করে। কার্সারটি কী ছিল তা আপনি এটিও দেখতে পারেন: প্রতিটি পুনরাবৃত্তিতে এটি তিনটি অক্ষরকে বামে নিয়ে যায় এবং যখন তার বামে তিনটি অক্ষর আর থাকে না, তখন এটি লুপটি ভেঙে যায়, যখন আমরা "নীচে" পৌঁছানোর সময় ঘটে থাকে পিরামিড এর।
এখন আমরা অনুরূপ অপারেশন করতে যাচ্ছি কিন্তু বিপরীতে। একটি লুপে, আমরা কার্সার দিয়ে রেখার শুরু থেকে পূর্ববর্তী লাইনের শুরু পর্যন্ত ফাঁকা স্থানগুলি অনুলিপি করব, আরও একটি, প্রক্রিয়ায় কার্সারটিকে সেই লাইনের উপরে নিয়ে যাব।
:A
s/(.*\n)( *)(.*);/ \2;\1\2\3/m
tA
এখানে কয়েকটি পুনরাবৃত্তি এবং শেষ ফলাফল:
a
b p
c o
;d n
EFGHIJKLM
a
b p
;c o
d n
EFGHIJKLM
...
; a
b p
c o
d n
EFGHIJKLM
কিছু অতিরিক্ত অক্ষর ব্যতীত আমরা এখনই সবকিছু শেষ করেছি: ;
প্রথম লাইনে একটি এবং অতিরিক্ত স্থান এবং পরের তিন লাইনে পিরামিডের "মাঝখানে" দুটি স্থান। একটি সাধারণ প্রতিস্থাপন এগুলি থেকে মুক্তি পায়:
s/. (.)$/\1/gm
সব শেষ!
a
b p
c o
d n
EFGHIJKLM
✂
?