^
1 N23456
+(` (.)?(\w*6)u
$1 $2
)`(.)? (\w*6)d
$1$2
.* (.).*
$1
ব্যবহার uএবংd উপরে এবং ডাউন জন্য।
এটি অনলাইন চেষ্টা করুন!
ব্যাখ্যা
এই প্রোগ্রামটি 1N23456নির্দেশের ক্রম পিছনে রেখে কাজ করে । এটি বর্তমান গিয়ারের পিছনে স্থান রেখে ট্র্যাক করে। তারপরে আর কিছু না পাওয়া পর্যন্ত এটি একবারে এক নির্দেশ নেয়।
^
1 N23456
1 N23456ইনপুট আগে রেখে শুরু করুন। আগের স্থানটি এটি বর্তমান গিয়ারকে Nনির্দেশ করে N।
+(` (.)?(\w*6)u
$1 $2
)`(.)? (\w*6)d
$1$2
এটি দুটি প্রতিস্থাপনের স্তর যা একত্রে গোষ্ঠীভুক্ত হয় এবং স্ট্রিং পরিবর্তন না করা পর্যন্ত চালায়:
(.)?(\w*6)u
$1 $2
প্রথমটি গিয়ারটি সরিয়ে নিয়ে যায়। এটি স্থানের পরে যেকোনও গিয়ার সন্ধান করবে 6, তার পরে ক , তারপরে u( uগিয়ার শিফট আপের নির্দেশ নির্দেশ করে)। যদি 6 এর আগে অক্ষর থাকে তবে এটি অক্ষরের সাথে সাথে স্থানটি অদলবদল করে, মুছে ফেলে uএবং বাকী স্ট্রিং অক্ষত রেখে দেয়। যেহেতু 6ম্যাচটি বাধ্যতামূলক, এটি কেবলমাত্র কোনও অক্ষরের সাথে স্থানটি অদলবদল করবে 6। এটা দিয়ে অদলবদল হবে না 6।
(.)? (\w*6)d
$1$2
দ্বিতীয় পর্যায়ে গিয়ার নিচে নামানো পরিচালনা করে এবং একইভাবে কাজ করে। এটি স্থানের আগে কোনও চরিত্রের জন্য allyচ্ছিকভাবে দেখায়, তারপরে শেষ হওয়ার পরে কিছু অন্যান্য গিয়ারগুলি 6অনুসরণ করে d। এটি চরিত্রের সাথে স্থানটি তার আগে পরিবর্তিত করে d, মুছে ফেলে এবং বাকী অক্ষত রেখে দেয়। স্পেসটি স্ট্রিংয়ের শুরুতে থাকলে, জায়গার আগে কোনও চরিত্রের কোনও মিল ছিল না, তাই কোনও অদলবদল হয় না।
.* (.).*
$1
উপরের কোনও প্রতিস্থাপন আর করা যাবে না, সমস্ত গিয়ার শিফট সম্পন্ন হয়েছে। স্পেসের সাথে সাথে লাইনটি গিয়ার বাদে সবকিছু মুছে ফেলে। এটি চূড়ান্ত গিয়ার।