স্ট্যাক্স , 11 বাইট (4 এর স্কোর)
'''cc'~~'dd
চালান এবং অনলাইন ডিবাগ!
৪. এর চেয়ে বেশি বা সমান স্কোর নিয়ে এই চ্যালেঞ্জটির প্রথম (কালানুক্রমিকভাবে) উত্তর পাওয়া আমার সম্মানের বিষয়, সম্ভবত স্কোরটি আরও বেশি হতে পারে।
স্ট্যাক্সে, একটি স্ট্রিং লিটারাল যা একটি একক চরিত্রের সমন্বয়ে গঠিত সেগুলি দিয়ে লেখা হয় '
, '', 'c, 'd, '~
সমস্ত স্ট্রিং আক্ষরিক হয় । এর সাথে সম্পর্কিত কমান্ডগুলি c
d
এবং এর ~
অর্থ মূল স্ট্যাকের শীর্ষটিকে নকল করুন, মূল স্ট্যাকের শীর্ষটি পপ করুন এবং মূল স্ট্যাকের শীর্ষটি পপ করুন এবং যথাক্রমে ইনপুট স্ট্যাকের দিকে ধাক্কা দিন। এই চ্যালেঞ্জের জন্য, ইনপুট স্ট্যাক আউটপুটকে প্রভাবিত করে না এবং এটি গুরুত্বপূর্ণ নয়, তাই আমরা বলতে পারি d
এবং ~
অভিন্ন।
ব্যাখ্যা
কোডটি কয়েকটি অংশে বিভক্ত করা এবং সেগুলি পৃথকভাবে বিবেচনা করা ভাল।
যখন এটির সাথে छेলাবাজি করা হয় না, তখন '''cc
আক্ষরিক '
এবং একটি আক্ষরিককে c
মূল স্ট্যাকের দিকে ঠেলে দেয় এবং শীর্ষটিকে নকল করে তোলে, তাই স্ট্যাকটি (নীচ থেকে নীচে) হবে c,c,'
।
যখন টেম্পার্পার না করা হয়, '~~
আক্ষরিককে ঠেলে দেয় ~
এবং তারপরে এটি পপ করে (এবং ইনপুট স্ট্যাকের দিকে ধাক্কা দেয়), যা মূলত মূল স্ট্যাকের জন্য কোনও অপ-বিকল্প।
যখন টেম্পার্পার না করা হয়, 'dd
আক্ষরিককে ঠেলে দেয় d
এবং তারপরে এটি মুছে ফেলা হয়, মূল স্ট্যাকের জন্য অন্য কোনও বিকল্প নেই।
প্রোগ্রামের শেষে, যেহেতু কোনও স্পষ্ট আউটপুট সম্পন্ন হয় না, মূল স্ট্যাকের শীর্ষটি সুস্পষ্টভাবে মুদ্রিত হবে।
প্রোগ্রামটি যেমন চলছে তেমন, চূড়ান্ত স্ট্যাকটি এখনও রয়েছে c,c,'
এবং আউটপুট হবে c
।
যদি প্রথম অংশটি হয়ে যায় ''cc
, তবে আমাদের কাছে আক্ষরিক '
, এবং দুটি অনুলিপি নির্দেশ রয়েছে, চূড়ান্ত স্ট্যাক হবে ',','
। প্রদত্ত যে অন্য দুটি অংশ কোনও অপ-বিকল্প নয়, ফলাফল হবে '
।
যদি প্রথম অংশটি হয়ে যায় '''c
, ফলাফলটি অবিক্রিত অংশের সাথে একই রকম হয়, তবে এটির c
সদৃশ হয় না। সুতরাং স্ট্যাক হবে c,'
। দুটি নো-অপের পরে স্ট্যাকের শীর্ষটি c
।
সুতরাং আমরা প্রথম অংশে বিকিরণ সনাক্ত করতে পারি।
দ্বিতীয় অংশ এবং তৃতীয় অংশ ঠিক একইভাবে কাজ করে। আমি উদাহরণ হিসাবে তৃতীয় অংশ নেব।
যদি তৃতীয় অংশটি টেম্পার করা হয়, তবে প্রথম দুটি অংশ যেমন হয় তেমন রাখা হয় এবং তৃতীয় অংশটি চালানোর আগে স্ট্যাকটি হয় c,c,'
যদি তৃতীয় অংশটি হয়ে যায় তবে 'd
একটি আক্ষরিককে d
মূল স্ট্যাকের শীর্ষে ঠেলে দেওয়া হয় এবং এর পরে আর কিছুই করা হয় না। মূল স্ট্যাকের শীর্ষটি এখন d
যা আউটপুট হবে।
যদি তৃতীয় অংশটি হয়ে যায় dd
, প্রধান স্ট্যাক থেকে দুটি উপাদান পপ করা হয় এবং এখন স্ট্যাকের শীর্ষটি '
আউটপুট হয় is
সুতরাং আমরা তৃতীয় অংশে বিকিরণ সনাক্ত করতে পারি। একই কারণে আমরা দ্বিতীয় অংশে বিকিরণ সনাক্ত করতে পারি।