পটভূমি
একটি লেবেলযুক্ত গাছ দেখতে দেখতে এটি দেখতে পারে:
o
/ | \
o o o
| / \
o o o
এই গাছটিকে লিনিয়ারাইজ করার জন্য , আমরা প্রথমে প্রতিটি নোডকে o
তার শিশু নোডের সংখ্যার সাথে লেবেল করি:
3
/ | \
1 0 2
| / \
0 0 0
এবং তারপরে একটি তালিকাতে সংখ্যাটি শ্বাস-প্রশ্বাসের প্রথম পদ্ধতিতে লিখুন, যার অর্থ লাইন এবং বাম থেকে ডানদিকে:
[3, 1, 0, 2, 0, 0, 0]
এটি উপরের গাছটির একটি অনন্য এবং দ্ব্যর্থহীন উপস্থাপনা, যার অর্থ কোনও দুটি পৃথক খাঁটি গাছের একই লাইনারিকরণ থাকবে না এবং আমরা তালিকা থেকে মূল গাছটিকে পুনর্গঠন করতে পারি।
যদিও প্রতিটি গাছ একটি নির্দিষ্ট পূর্ণসংখ্যার তালিকার সাথে সম্পর্কিত তবে প্রতিটি পূর্ণসংখ্যার তালিকাটি একটি বৈধ রৈখিক গাছের [2, 0, 0, 0]
প্রতিনিধিত্ব করে না : উদাহরণস্বরূপ, কোনও বৈধ গাছকে উপস্থাপন করা হয় না, যদি আমরা এটি ডি-লিনিয়ারাইজ করার চেষ্টা করি তবে আমরা এই গাছটি দিয়ে শেষ করব end
[2,0,0,0] -> 2 [0,0,0] -> 2 [0,0] -> 2 [0]
/ \ / \ / \
0 0 0
তবে তালিকায় এখনও একটি 0
বাম আছে এবং এটি রাখার মতো কোথাও নেই। তেমনি [2, 0]
একটি বৈধ ট্রি লিনিয়ারাইজেশনও নয়, কারণ ডি-রেখাযুক্ত গাছের খালি শিশু স্পট রয়েছে:
2
/ \
0
কার্য
একটি পূর্ণসংখ্যা তালিকা দেওয়া হয়েছে, যতটা সম্ভব কম বাইট ব্যবহার করে এটি কোনও গাছের বৈধ লিনিয়ারাইজেশন কিনা তা স্থির করুন। আপনি একটি সম্পূর্ণ প্রোগ্রাম বা একটি ফাংশন লিখতে পারেন।
ইনপুট: অ-নেতিবাচক পূর্ণসংখ্যার একটি খালি খালি তালিকা।
আউটপুট: তালিকাটি যদি গাছের লৈখিকরণ হয়, অন্যথায় মিথ্যা মান।
Testcases
Truthy[0]
[2, 0, 0]
[1, 1, 1, 1, 1, 0]
[3, 1, 0, 2, 0, 0, 0]
[2, 0, 2, 2, 0, 0, 2, 0, 0]
[3, 2, 2, 1, 1, 1, 0, 0, 0, 0, 0]
[1, 5, 3, 0, 2, 1, 4, 0, 1, 0, 0, 2, 1, 0, 0, 1, 1, 0, 0, 0, 0, 2, 1, 0, 0, 1, 0]
Falsy
[0, 1]
[2, 0]
[2, 0, 0, 0]
[1, 0, 1]
[3, 2, 1, 0]
[2, 0, 0, 2, 0, 0]
[4, 1, 0, 3, 0, 0, 0, 0]
[4, 2, 0, 3, 1, 0, 0, 0, 0, 0]
{X0@{+\(_{\}&}/|!}
আমি মনে করি?