এই চ্যালেঞ্জের মধ্যে আপনাকে অবশ্যই তালিকার একটি তালিকা একটি সরল তালিকা বিন্যাসে পার্স করতে হবে।
এই চ্যালেঞ্জটি আমার স্যাডফ্লাক পার্সারের উপর ভিত্তি করে। আমার স্যাডফ্ল্যাক পার্সারে, প্রোগ্রামটি আরও দ্রুত চালিত করার জন্য এটি তালিকার শুরুতে () গুলি যোগ করে সমস্ত () সরিয়ে ফেলা হয়েছে।
একটি দু: খ-তালিকায় পার্স করার জন্য আপনাকে এটি করতে হবে (অজগর বাস্তবায়ন জিনিস, একটি টিপলস টুপল ব্যবহার করে):
def sadlistfunc(list):
new-sadlist = [0]
for i in list:
if i == ():
new-sadlist[0]+=1
else:
new-sadlist.append(sadlistfunc(i))
এটি একটি পুনরাবৃত্তি ফাংশন। তালিকার জন্য, তালিকা ইনপুট থেকে () সংখ্যা দিয়ে শুরু করে একটি নতুন তালিকা শুরু করুন, তারপরে এই তালিকার বাকিগুলি তালিকার ইনপুট থেকে ক্রম অনুসারে প্রতিটি তালিকার দুঃখ-তালিকার সংস্করণ। তালিকাটি ফিরিয়ে দিন।
ইনপুট:
আপনি কয়েকটি আলাদা ফর্ম্যাটে ইনপুট নিতে পারেন:
- আপনি এটি একটি তালিকা হিসাবে নিতে পারেন
- আপনি এটি একটি tuple হিসাবে নিতে পারেন
- আপনি এটি একটি স্ট্রিং হিসাবে নিতে পারেন
যদি আপনি এটি একটি স্ট্রিং হিসাবে গ্রহণ করেন তবে আপনার ব্রেনের কিছু সেট ব্যবহার করা উচিত, যেমন মস্তিষ্ক-ফ্ল্যাঙ্কে প্রদর্শিত হবে। আপনি 1 এবং 2 অক্ষর ব্যবহার করতে পারেন
ঠিক যুক্তিযুক্ত
ইনপুট সর্বদা একটি তালিকার অভ্যন্তরে থাকবে তবে আপনার প্রোগ্রামটি ইনপুটটির বাইরে একটি অন্তর্নিহিত তালিকা স্তর ধরে নিতে পারে, যেমন () () () () (() () ()), বা এটি নাও বেছে নিতে পারে। উদাহরণগুলি সুস্পষ্ট বাইরের তালিকার সাথে থাকবে
আউটপুট:
তালিকা বা টিপল বা স্ট্রিং বা যা কিছু হতে পারে। আপনি মেটা sensকমত্য হিসাবে যুক্তিসঙ্গত আউটপুট ফর্ম্যাটটি ব্যবহার করতে পারেন।
উদাহরণ:
(()()()) = [3]
(((()))) = [0,[0,[1]]]
((())()(())) = [1, [1], [1]]
() = invalid input, if the outside bracket is explicit.
((((())())())(())()) = [1, [1, [1, [1]]], [1]]
নোট করুন যে ইনপুট কঠোর নয়। এই ইনপুটগুলি হতে পারে:
[[],[],[]]
[[[[]]]]
[[[]],[],[[]]]
[]
[[[[[]],[]],[]],[[]],[]]
বা অন্য কিছু যুক্তিসঙ্গত বিন্যাস
ব্যাখ্যা পরীক্ষার কেস:
(()()((())())())
এটি "দুঃখিত" করতে, প্রথমে আমরা () এর সংখ্যা গণনা করি
()() ()
( ((())()) )
3. তারপরে আমরা এগুলি সরিয়ে ফেলব এবং শুরুতে একটি 3 যুক্ত করব
(3,((())()))
এই তালিকায় একটি তালিকা আছে। আমরা এই দুঃখ
((())())
কতগুলো ()?
()
((()) )
1. আমরা সরাতে শুরু করি এবং 1 টি যুক্ত করি
(1,(()))
এটিতে এটির একটি তালিকা রয়েছে
(())
গণনা
()
( )
মুছে ফেলুন এবং গণনা যোগ করুন
(1)
তারপরে আমরা এটিকে আবার তার তালিকায় রাখি
(1,(1))
তারপরে আমরা এটিকে আবার তার তালিকায় রাখি
(3,(1,(1)))
সম্পন্ন
এটি কোড-গল্ফ , তাই খাটো আরও ভাল
((((())())())(())()) = [1, [1, [1, [1]], [1]]
করা উচিত ((((())())())(())()) = [1, [1, [1, [1]]], [1]]
।