পটভূমি
একটি বাইনারি ট্রি একটি মূলী গাছ যার প্রতিটি নোডের সবচেয়ে দুটি সন্তান এ আছে।
একটি লেবেলযুক্ত বাইনারি গাছ একটি বাইনারি গাছ যার প্রতিটি নোডকে ইতিবাচক পূর্ণসংখ্যার সাথে লেবেলযুক্ত হয়; তদুপরি, সমস্ত লেবেল স্বতন্ত্র ।
একটি বিএসটি (বাইনারি অনুসন্ধান ট্রি) একটি লেবেলযুক্ত বাইনারি গাছ যেখানে প্রতিটি নোডের লেবেল তার বাম সাবট্রির সমস্ত নোডের লেবেলের চেয়ে বড় এবং তার ডান সাবট্রির সমস্ত নোডের লেবেলের চেয়ে ছোট। উদাহরণস্বরূপ, নিম্নলিখিতটি একটি বিএসটি:
প্রি-অর্ডার ট্র্যাভেরসাল একটি লেবেল বাইনারি গাছের নিম্নলিখিত সিউডো-কোড দ্বারা সংজ্ঞায়িত করা হয়।
function preorder(node)
if node is null then
return
else
print(node.label)
preorder(node.left)
preorder(node.right)
আরও ভাল স্বজ্ঞাততা পেতে নিম্নলিখিত চিত্রটি দেখুন:
এই বাইনারি গাছের শিখরগুলি নিম্নলিখিত ক্রমে মুদ্রিত হয়:
F, B, A, D, C, E, G, I, H
আপনি এখানে বিএসটি সম্পর্কে আরও পড়তে পারেন এবং প্রাক-অর্ডার ট্র্যাভারসাল সম্পর্কে আরও এখানে ।
চ্যালেঞ্জ
পূর্ণসংখ্য এর একটি তালিকা দেওয়া আপনার কাজটি হ'ল এমন কোনও বিএসটি আছে কিনা তা নির্ধারণ করা যার প্রি-অর্ডার ট্র্যাভারসাল প্রিন্টগুলি হ'ল ।
ইনপুট
- পৃথক ধনাত্মক পূর্ণসংখ্যার খালি খালি তালিকা ।
- বৈকল্পিকভাবে, দৈর্ঘ্য ।
আউটপুট
- একজন truthy মান যদি কিছু বিএসটি এর প্রি-অর্ডার ট্র্যাভেরসাল হয়।
- অন্যথায় একটি মিথ্যা মান।
বিধি
- বৈধ জমা দেওয়ার জন্য মানক বিধি , I / O , লুফোলস প্রযোজ্য।
- এটি কোড-গল্ফ , তাই সংক্ষিপ্ততম সমাধান (বাইটে) জিতেছে। যথারীতি, গোল্ফ ভাষায় হাস্যকর সংক্ষিপ্ত সমাধানগুলি আপনার পছন্দের ভাষায় দীর্ঘ উত্তর পোস্ট করা থেকে নিরুৎসাহিত করবেন না।
- এটি কোনও নিয়ম নয়, তবে সমাধানটির পরীক্ষার জন্য একটি লিঙ্ক এবং এটি কীভাবে কাজ করে তার একটি ব্যাখ্যা অন্তর্ভুক্ত করা থাকলে আপনার উত্তরটি আরও ভালভাবে পাওয়া যাবে।
উদাহরণ
Input ----> Output
[1] ----> True
[1,2,3,4] ----> True
[5,1,4,2,3] ----> True
[5,4,3,2,1,6,7,8,9] ----> True
[4,2,1,3,6,5,7] ----> True
[8,3,1,6,4,7,10,14,13] ----> True
[2,3,1] ----> False
[6,3,2,4,5,1,8,7,9] ----> False
[1,2,3,4,5,7,8,6] ----> False
[3,1,4,2] ----> False
উদাহরণগুলিতে দৃষ্টি আকর্ষণ করতে এই লিঙ্কটি ( কেভিন ক্রুইজসেনের সৌজন্যে ) দেখুন।