^
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
উপরের কোনও প্রতিস্থাপন আর করা যাবে না, সমস্ত গিয়ার শিফট সম্পন্ন হয়েছে। স্পেসের সাথে সাথে লাইনটি গিয়ার বাদে সবকিছু মুছে ফেলে। এটি চূড়ান্ত গিয়ার।