ভূমিকা
এই চ্যালেঞ্জটি গ্রিম দ্বারা অনুপ্রাণিত হয়েছে , আমার 2 ডি প্যাটার্নের মিল রয়েছে। মূলত, আপনাকে একটি "ব্যাকরণ" দেওয়া হয় যা চরিত্রের দ্বি-মাত্রিক গ্রিডগুলি বর্ণনা করে এবং আপনার কাজটি ব্যাকরণ অনুযায়ী গ্রিড তৈরি করা to এছাড়াও, নির্দিষ্ট দুর্বল অর্থে গ্রিডটি যতটা সম্ভব ছোট হওয়া উচিত।
ইনপুট
আপনার ইনপুট ছোট হাতের ASCII অক্ষর এবং চিহ্ন সম্বলিত একটি স্ট্রিং |
এবং -
। সরলতার জন্য, ইনপুটটিতে পুনরাবৃত্ত ছোট হাতের অক্ষর থাকে না। স্ট্রিংটি অক্ষরের আয়তক্ষেত্রাকার গ্রিডগুলির শ্রেণীর জন্য একটি স্পেসিফিকেশন এবং এটি নীচে স্ট্যাক ব্যবহার করে বাম থেকে ডানে পার্স করা হয়।
- অবশ্যই ছোট হাতের অক্ষরের দেওয়া
c
, একটি স্ট্যাকে ধাক্কাm×n
চরিত্রের গ্রিডc
কোন জন্য,m, n ≥ 1
। - একটি পাইপ দেওয়া হয়েছে
|
, দুটি গ্রিড পপ করুনA
এবংB
স্ট্যাক থেকে (B
উপরে ছিল), এবং ডানদিকেAB
সংযুক্ত করে গ্রিডটি চাপুন । এটির প্রয়োজন এবং সমান উচ্চতা রয়েছে।B
A
A
B
- হাইফেন দেওয়া হয়েছে
-
, দুটি গ্রিড পপ করুনA
এবংB
স্ট্যাক থেকে (B
উপরে ছিল) এবং নীচের অংশেA/B
সংযোগ দিয়ে গ্রিডটি চাপুন । এটির প্রয়োজন এবং সমান প্রস্থ রয়েছে widthB
A
A
B
এটি গ্যারান্টিযুক্ত যে পার্সিং প্রক্রিয়া চলাকালীন কিছু পছন্দ m
এবং n
করা (যা প্রতিটি অক্ষরের জন্য পৃথক হতে পারে) এর জন্য, ইনপুট স্পেসিফিকেশন সঠিকভাবে কিছু আয়তক্ষেত্র বর্ণনা করে, যা শেষে স্ট্যাকের উপর ছেড়ে যায়।
আউটপুট
আপনার আউটপুটটি ইনপুট দ্বারা বর্ণিত অক্ষরের একটি আয়তক্ষেত্রাকার গ্রিড। গ্রিডটি অবশ্যই ন্যূনতম হওয়া উচিত যে কোনও সারি বা কলামটি অপসারণ করলে তা অবৈধ হয়ে যায়। আপনি একটি নতুনলাইন-বিচ্ছিন্ন স্ট্রিং (পিছনে থাকা নতুন লাইনের সাথে বা ছাড়াই), অক্ষরের একটি 2D অ্যারে বা স্ট্রিংগুলির একটি অ্যারে, যেটি সবচেয়ে সুবিধাজনক বিন্যাসে ফিরে আসতে পারেন।
মনে রাখবেন যে উপরে বর্ণিত ঠিক মতো ইনপুটটি প্রসেস করার দরকার নেই; শুধুমাত্র গুরুত্বপূর্ণ জিনিসটি আপনার আউটপুটটি সঠিক।
উদাহরণ
স্পেসিফিকেশন বিবেচনা করুন
par-s||e-
প্রথমত, আমরা একটি 1×2
আয়তক্ষেত্র p
এবং ধরণের 1×1
আয়তক্ষেত্রকে ধাক্কা বেছে নিই a
এবং r
এর কারণটি পরে স্পষ্ট হবে)। তারপরে, আমরা পপগুলি a
এবং r
আয়তক্ষেত্রগুলিকে পপ করি এবং তাদের উল্লম্ব সংমিশ্রণে ঠেলা দেই
a
r
এরপরে, আমরা একটি 1×2
আয়তক্ষেত্রটি চাপি s
, এটি এবং উপরের আয়তক্ষেত্রটি পপ করব এবং তাদের অনুভূমিক সংমিশ্রণটি ধাকব
as
rs
তারপরে আমরা সেই আয়তক্ষেত্রটি এবং আয়তক্ষেত্রটি পপ করব p
এবং তাদের উপবৃত্তিকে ধাক্কা দেব
pas
prs
অবশেষে, আমরা একটি 3×1
আয়তক্ষেত্রটি চাপি e
, এটি এবং উপরের আয়তক্ষেত্রটি পপ করব এবং উল্লম্ব সংমিশ্রণটিকে ধাক্কা দেব
pas
prs
eee
এটি প্রোগ্রামের আউটপুট, বা সম্ভাব্যতার অন্তত একটি। যদিও খেয়াল করুন
ppas
ppas
pprs
eeee
স্পেসিফিকেশন দ্বারা উত্পাদিত হয়, এটি একটি বৈধ আউটপুট নয়, যেহেতু সারি এবং কলামগুলির অনেকগুলি সরানো যেতে পারে।
আরও সূক্ষ্ম উদাহরণ হিসাবে বিবেচনা করুন
co|m|p|il|e|r|-
এই স্পেসিফিকেশনটি আয়তক্ষেত্র তৈরি করে
comp
iler
যা একটি বৈধ আউটপুট। তবে এটি জেনারেটও করে
commp
iiler
যা বৈধও, যেহেতু কোনও একক সারি বা কলাম অকার্যকর না করে সরানো যাবে না।
বিধি
আপনি একটি সম্পূর্ণ প্রোগ্রাম বা একটি ফাংশন দিতে পারেন। সর্বনিম্ন বাইট গণনা জয়, এবং মান লুফোলগুলি অনুমোদিত নয়।
অতিরিক্ত পরীক্ষার কেস
আপনি আপনার প্রোগ্রামটি পরীক্ষা করতে এটি ব্যবহার করতে পারেন।
Input:
a
Output:
a
Input:
co|mp|l|-ex|i|f|-y|
Example output:
cccoy
mplly
exify
Input:
ja-r|g-o|ni-|ze|d-|
Example output:
jronze
arondd
ggoidd
Input:
un|co|p-yr|i|gh-t-ab|-|le-||-
Example output:
unnnnnnn
coyriggl
ppyrihhe
ppyritte
ppyriabe
n
এবং m
অ- নিরঙ্কুশভাবে বেছে নেওয়া হয়েছে। এটি গ্যারান্টিযুক্ত যে তাদের জন্য উপযুক্ত মান বিদ্যমান, তবে এটিগুলি খুঁজে পাওয়া আপনার প্রোগ্রামের কাজ।
un|co|p-|yr|i|gh--t-ab|-|le-||-
বৈধ হওয়া অসম্ভব। সর্বশেষের -
2 টির আরটি থাকে, যখন স্ট্যাকটিতে কেবল 1 টি উপাদান থাকে।