()[]
এই পয়েন্টগুলিকে সন্তুষ্ট করে এমন চারটি অক্ষরের একটি স্ট্রিং নিয়ে এমন একটি প্রোগ্রাম লিখুন :
- প্রতিটি বাম বন্ধনীর
(
সাথে একটি ডান বন্ধনী রয়েছে)
। - প্রতিটি বাম বন্ধনী
[
একটি মানানসই ডান বন্ধনী হয়েছে]
। - জোড়া বন্ধনী এবং বন্ধনী মিলছে না ওভারল্যাপ হবে। উদাহরণস্বরূপ
[(])
অবৈধ কারণ ম্যাচিং বন্ধনী পুরোপুরি ম্যাচিং বন্ধনীগুলিতে নেই এবং তদ্বিপরীত। - প্রথম এবং শেষের অক্ষরগুলি হ'ল বন্ধনী বা বন্ধনীর সাথে একত্রে মিলছে। সুতরাং
([]([]))
এবং[[]([])]
বৈধ কিন্তু[]([])
না।
( ইনপুট ফর্ম্যাটটির একটি ব্যাকরণ<input> ::= [<input>*] | (<input>*)
)
মিলে যাওয়া প্রথম বন্ধনী এবং বন্ধনীগুলির প্রতিটি জুটি একটি অ-নেতিবাচক পূর্ণসংখ্যার সাথে মূল্যায়ন করে:
- ম্যাচিং বন্ধনীর ভিতরে জোড়ার মানগুলি সমস্ত সংক্ষিপ্ত করে । খালি ম্যাচের
()
মান রয়েছে0
। - ম্যাচিং বন্ধনীগুলির মধ্যে জোড়াগুলির মানগুলি সমস্ত গুণিত হয় । খালি ম্যাচের
[]
মান রয়েছে1
।
(একটি সংখ্যার যোগফল বা পণ্যটি একই সংখ্যা))
উদাহরণস্বরূপ, ([](())([][])[()][([[][]][][])([][])])
এটি ভেঙে এবং মূল্যায়ন করা যেতে পারে 9
:
([](())([][])[()][([[][]][][])([][])]) <input>
(1 (0 )(1 1 )[0 ][([1 1 ]1 1 )(1 1 )]) <handle empty matches>
(1 0 2 0 [(1 1 1 )2 ]) <next level of matches>
(1 0 2 0 [3 2 ]) <and the next>
(1 0 2 0 6 ) <and the next>
9 <final value to output>
আরেকটি উদাহরণ:
[([][][][][])([][][])([][][])(((((([][]))))))] <input>
[(1 1 1 1 1 )(1 1 1 )(1 1 1 )((((((1 1 ))))))]
[5 3 3 (((((2 )))))]
[5 3 3 ((((2 ))))]
[5 3 3 (((2 )))]
[5 3 3 ((2 ))]
[5 3 3 (2 )]
[5 3 3 2 ]
90 <output>
আপনার প্রোগ্রামটির পুরো ইনপুট স্ট্রিং দ্বারা প্রতিনিধিত্ব করে পূর্ণসংখ্যাটি মূল্যায়ন এবং মুদ্রণ করা দরকার। আপনি ইনপুটটি বৈধ বলে ধরে নিতে পারেন। বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী।
কোনও প্রোগ্রামের পরিবর্তে, আপনি কোনও ফাংশন লিখতে পারেন যা স্ট্রিংয়ের মধ্যে লাগে এবং পূর্ণসংখ্যা মুদ্রণ করে বা ফেরত দেয়।