পাওয়ারশেল ভি 3 +, 171 বাইট
param([char[]]$x)$a,$b=$x;$a=,$a;while($b){$z,$b=$b;$a+=$a|%{0..($y=($c="$_").Length)|%{-join($c[0..$_]+$z+$c[++$_..$y])};"$z$c";"$c$z"}}$a|?{$_.length-eq$x.count}|sort -u
পাওয়ারশেল ভি 3 -Unique
পতাকাটি Sort-Object
সেমিডলেটটিতে প্রবর্তন করেছে , সুতরাং এটি নীচের ভি 2 সংস্করণের চেয়ে কয়েক বাইট কম, যেহেতু আমাদের Select
প্রথমে দরকার নেই ।
ভি 2 সংস্করণ, 178 বাইট:
param([char[]]$x)$a,$b=$x;$a=,$a;while($b){$z,$b=$b;$a+=$a|%{0..($y=($c="$_").Length)|%{-join($c[0..$_]+$z+$c[++$_..$y])};"$z$c";"$c$z"}}$a|?{$_.length-eq$x.count}|select -u|sort
পাওয়ারশেলের কোনও অন্তর্নির্মিত অনুমতি নেই, তাই আমি প্রাইম ফ্যাক্টর বাডস থেকে আমার কোড ধার নিয়েছি এবং এখানে ব্যবহারের জন্য এটি সামান্য টুইট করেছি twe
এটি মূলত তিনটি অংশ, যা আমি নীচে প্রসারিত করব।
param([char[]]$x)$a,$b=$x;$a=,$a
ইনপুট নেয় $x
, এটিকে char
অ্যারে হিসাবে কাস্ট করে , প্রথম অক্ষরটি সরিয়ে দেয় $a
এবং বাকীটি এর মধ্যে ফেলে $b
এবং তারপরে $a
কমা-অপারেটরের সাথে অ্যারে হিসাবে আবদ্ধ হয়।
while($b){$z,$b=$b;$a+=$a|%{0..($y=($c="$_").Length)|%{-join($c[0..$_]+$z+$c[++$_..$y])};"$z$c";"$c$z"}}
বাকী অক্ষরের মাধ্যমে লুপগুলি ( $b
), প্রতিটি পুনরাবৃত্তি পরবর্তী অক্ষরটি গ্রহণ করে এবং এটি স্টোরেজ করে এবং বাকীটি $z
রেখে দেয় $b
, তারপরে তার নিজস্ব লুপের মাধ্যমে $a
প্রেরণের ফলাফলের জন্য অ্যারে-কনটেনটিং $a
- প্রতিটি আইটেম $a
(অস্থায়ীভাবে সঞ্চিত $c
) উপর লুপ হয় নিজস্ব .length
, এবং তারপর $z
prepending এবং সংযোজন সহ যে অবস্থান, ঢোকানো হয় $z$c
এবং $c$z
। উদাহরণস্বরূপ, এর জন্য $c = '12'
এবং এর $z = '3'
ফলস্বরূপ '132','312','123'
আবার ফিরে আসবে $a
।
চূড়ান্ত অংশটি $a|?{$_.length-eq$x.count}|select -u|sort
প্রতিটি উপাদান গ্রহণ করে $a
এবং Where-Object
কেবলমাত্র ইনপুট স্ট্রিংয়ের সমান দৈর্ঘ্য select
থাকা -u
ফিল্টারগুলি ছড়িয়ে দিতে ক্লজ ব্যবহার করে , তারপরে কেবলমাত্র নির্দিষ্ট আইটেম এবং অবশেষে sort
সেইগুলি বর্ণানুক্রমিক। ফলস্বরূপ স্ট্রিংগুলি সমস্ত পাইপলাইনে রেখে যায় এবং Write-Output
প্রোগ্রামের সমাপ্তির পরে অন্তর্নিহিত মাধ্যমে আউটপুট ঘটে।
PS C:\Tools\Scripts\golfing> .\alphabetically-permute-a-string.ps1 'PPCG'
CGPP
CPGP
CPPG
GCPP
GPCP
GPPC
PCGP
PCPG
PGCP
PGPC
PPCG
PPGC
["buzz" "bzuz" "bzzu" "ubzz" "uzbz" "uzzb" "zbuz" "zbzu" "zubz" "zuzb" "zzbu" "zzub"]
?