এবিসি সলভার হিসাবে সহজ


11

সহজ হিসাবে এবিসি, "এন্ড ভিউ" নামে পরিচিত এটি এমন একটি ধাঁধা যা আপনাকে চারপাশে বর্ণ সহ খালি গ্রিড দেওয়া হয়; আপনাকে অবশ্যই আংশিকভাবে গ্রিডটি পূরণ করতে হবে যাতে প্রতিটি বর্ণের একটি করে প্রতিটি সারি এবং কলামে থাকে; তদতিরিক্ত, একটি সারি (বা কলাম) এর শেষে থাকা অক্ষর অবশ্যই সেই দিক থেকে সেই সারিতে (বা কলামে) দৃশ্যমান প্রথম অক্ষর হতে হবে। এই কোড গল্ফের আপনার লক্ষ্যটি হ'ল এবিসি ধাঁধা হিসাবে সহজ হিসাবে সমাধান করা।

উদাহরণস্বরূপ, এই বছরের এমআইটি রহস্য হান্টের এমআইসি অক্ষর ব্যবহার করে একটি সহজ হিসাবে এবিসি ধাঁধা :

ধাঁধা

সমাধানটি হ'ল:

সমাধান

(সিসির নিদর্শনগুলির জন্য দুঃখিত; আমি বাকি ধাঁধা থেকে অপ্রাসঙ্গিক তথ্য সম্পাদনা করার চেষ্টা করেছি।)

ইনপুট / আউটপুট

ইনপুটটি স্ট্রিংগুলির একটি অ্যারের বা সম্ভবত স্ট্রিমিটরগুলির সাথে একটি স্ট্রিং হবে। এটি উপরের বাম কোণে শুরু হয়ে ঘড়ির কাঁটার দিকে চলে যাবে। উদাহরণস্বরূপ, উপরের ধাঁধাটি এর মতো ইনপুট হতে পারে:

".CMM.M|....IM|.....I|C.ICI."

সীমানা সহ বা ছাড়াই আউটপুট হ'ল সমাধান গ্রিড হওয়া উচিত। এটি অক্ষরের অ্যারে, স্ট্রিংগুলির অ্যারে বা অন্য কোনও সুবিধাজনক বিন্যাস হিসাবে হতে পারে। একই "ফাঁকা" অক্ষরটি অবশ্যই ইনপুট হিসাবে গ্রহণ করতে হবে এবং আউটপুট হিসাবে প্রদর্শিত হবে, তবে সেই ফাঁকা অক্ষরটি কিছু হতে পারে। যদি সেগুলি একক স্ট্রিং হয় তবে ইনপুট এবং আউটপুট উভয়েরই একই বিভাজক থাকতে হবে (আউটপুটটির জন্য ইনপুট এবং সারিগুলির মধ্যে) বা কোনও বিভাজক নেই।

অবিশ্বাস্য ধাঁধাটির জন্য, আপনাকে অবশ্যই এমন কিছু আউটপুট দিতে হবে যা সমাধানের জন্য ভুল নয়। আপনি ধরে নিতে পারেন যে কোনও ধাঁধার একাধিক সমাধান নেই।

আপনাকে অবশ্যই কোনও সংখ্যা এবং কোনও আকারের গ্রিডের অনুমতি দিতে হবে; সমস্ত ব্যবহৃত অক্ষর গ্রিডের সীমানায় উপস্থিত হবে।

এটি : যথারীতি সংক্ষিপ্ততম কোডের জয়!

পরীক্ষার কেস

"T.AA..|.T.TSS|..TST.|A...SS"
"R.RU..|B.B..B|.UR.UB|UR..B."
"N...NK|E.NK.K|..KK..|....EK"
"CA..DBD|.B..CC.|.D.DEB.|DB.A..A"
"...DDEBE|DC..EBBD|BA..ABF.|E..FECDE"

2
পরিষ্কার হতে: পুরো বর্ণমালা সীমান্তে দেওয়া হয়? (অর্থাৎ সীমান্তে নেই এমন কোনও চিঠি উপস্থিত হবে না?)
কুইন্টোপিয়া

@ কুইন্টোপিয়া: হ্যাঁ সীমানায় প্রতিটি ব্যবহৃত অক্ষর থাকবে।
দেউসোভি

উত্তর:


1

পিএইচপি, 1111 বাইট

মাইনাস বাইটস মুছে ফেলুন নিউলাইনগুলি

অনলাইন সংস্করণ 6 যার দৈর্ঘ্য Testcases একমাত্র কাজ করে

সংক্ষিপ্ত workaround

সমস্ত অনুমতি দিন

ক্রমানুসারে 2 টি অ্যারে পূরণ করুন 2 x $ y

দুটি ক্রিয়াকলাপের মধ্যে এতক্ষণ পরিবর্তন হওয়া পর্যন্ত এক্স অ্যারের পূর্ববর্তী লাইনে 1 টি সমাধান উপস্থিত থাকে

ফাংশন i: গ্রিডের ছেদগুলি খুঁজে এবং ড্রপ অনুমানের সন্ধান করুন

ফাংশন সি: অনন্য চার্টারের প্রতিটি অ্যারেতে কলমগুলি পরীক্ষা করুন এবং অ্যারে $ x এবং $ y এর জন্য অন্যান্য লাইনে ক্রমগুলি সরিয়ে ফেলুন

$p=[];p(array_pad(($s="str_split")(substr(count_chars($a=$argn,3),1,-1)),$l=(strlen($a)-3)/4," "));
$e=explode("|",$a);$e[3]=strrev($e[3]);$e[2]=strrev($e[2]);
$x=$y=array_fill(0,$l,$p);$g="preg_grep";$c="array_column";$o="join";
foreach($q=range(0,$l-1)as$i){
$e[0][$i]=="."?:$y[$i]=$g("#^\s*{$e[0][$i]}#",$y[$i]);
$e[2][$i]=="."?:$y[$i]=$g("#{$e[2][$i]}\s*$#",$y[$i]);
$e[3][$i]=="."?:$x[$i]=$g("#^\s*{$e[3][$i]}#",$x[$i]);
$e[1][$i]=="."?:$x[$i]=$g("#{$e[1][$i]}\s*$#",$x[$i]);}
for(;array_sum(($m="array_map")("count",$x))>$l;){
foreach($q as$i)foreach($q as$j){
$k=array_intersect($c($m($s,$x[$i]),$j),$c($m($s,$y[$j]),$i));
$y[$j]=$g("#^.{{$i}}(".$o("|",$k).")#",$y[$j]);
$x[$i]=$g("#^.{{$j}}(".$o("|",$k).")#",$x[$i]);
foreach(["x","y"]as$z){
$u=array_unique($c($m($s,${"$z"}[$i]),$j));
if(count($u)==1&&end($u)!=" "){$w=end($u);
foreach($q as$h){
if($i!=$h)${"$z"}[$h]=$g("#^.{{$j}}{$w}#",${"$z"}[$h],1);}}
}}}
echo$o("\n",$m($o,$x));
function p($c,$b=[]){global$p;
if(($c)){$n=[];while($c){
$e=array_pop($c);
p(($m="array_merge")($c,$n),$m($b,[$e]));
$n[]=$e;
}}else in_array($b=join($b),$p)?:$p[]=$b;}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.