চ্যালেঞ্জ
আপনার কাজটি হ'ল ASCII অক্ষরের একটি স্ট্রিং হিসাবে একটি পূর্ণসংখ্যা এনকোড করা হয় , তারপরে স্ট্রিং এলোমেলোভাবে পরিবর্তিত হওয়ার পরে সাফল্যের সাথে ডিকোড করুন।
আপনি দুটি প্রোগ্রাম / ফাংশন লিখবেন , যা এনকোডার এবং ডিকোডার হিসাবে উল্লেখ করা হবে ।
এনকোডার
- ইনপুট: একটি পূর্ণসংখ্যা সীমার মধ্যে ।
- আউটপুট: একটি স্ট্রিং এর হওয়া ASCII অক্ষর (অগত্যা মুদ্রণযোগ্য নয়)।
সঙ্কেতমোচক
- ইনপুট: একটি র্যান্ডম বিন্যাস স্ট্রিং এর ।
- আউটপুট: পূর্ণসংখ্যা ।
স্কোরিং
যাক হতে সর্বোচ্চ দৈর্ঘ্য এর গুলি সব সম্ভাব্য মান জুড়ে এন । তাহলে এনকোডার কাজ অ deterministically (যা অনুমোদিত হয়, নীচে দেখুন), তারপর একটি সর্বাধিক দৈর্ঘ্য হতে হবে গুলি করে (সম্ভবত ঘটতে পারে ∞ )।
যাক হতে দৈর্ঘ্য এনকোডার বাইট এবং দৈর্ঘ্য সঙ্কেতমোচক বাইটে।
তারপরে আপনার স্কোর ।
বিজয়টি সর্বনিম্ন স্কোর জমা দেওয়া হয় ।
সময় সীমা
একক টেস্টকেস (অর্থাত্ n এর একক মান ) এর জন্য এনকোডার এবং ডিকোডার উভয়কেই কার্যকর করার সময় কিছুটা নির্বিচার সময়সীমা থাকে ।
লক্ষ্যটি হ'ল সমাধানটি এড়ানো যে এটি নির্দিষ্ট বৈশিষ্ট্য সহ সমস্ত সিকোয়েন্স গণনা করে এনক্রোডিংকে জোর-জোর করে find যদি আপনার সমাধানটি এর চেয়ে আরও চালাক কিছু করে তবে সম্ভবত এটি সময়ের সীমাবদ্ধতার সাথে মানিয়ে যাবে এবং এটি বৈধ হিসাবে বিবেচিত হবে। তেমনিভাবে, এটি এন এর কয়েকটি এলোমেলোভাবে নির্বাচিত মানগুলির জন্য টিআইওতে কাজ করলে এটি বৈধ বলে বিবেচিত হবে। অন্যথায় আমি এটি আমার মেশিনে পরীক্ষা করে দেখব তবে নোট করুন যে আপনার সমাধানটি যদি নিখরচায় কার্যকর হয় তবে এটি অবশ্যই ব্যর্থ হবে।
বিধি
- এনকোডার এবং সঙ্কেতমোচক লেখা আবশ্যক একই ভাষায় ।
- সঙ্কেতমোচক আবশ্যক আউটপুট সঠিক পূর্ণসংখ্যা প্রতি সম্ভব বিন্যাস জন্য স্ট্রিং এর দ্বারা ফিরে এনকোডার ।
- এনকোডার এবং সঙ্কেতমোচক হয় না করার অনুমতি দেওয়া ভাগ তথ্য (গ্লোবাল ভেরিয়েবল বা ফাইল মাধ্যমে যেমন) কোন উপায়।
- এনকোডারটির আউটপুট ডিটারমিনিস্টিক হওয়া দরকার না (অর্থাৎ, এনকোডার একাধিকবার চালিত হলে একই ইনপুট এন বিভিন্ন আউটপুট স্ট্রিং তৈরি করতে পারে ), তবে ডিকোডারটি অবশ্যই সর্বদা সঠিক পূর্ণসংখ্যা এন অনুমান করতে পারে ।
- এনকোডার এবং সঙ্কেতমোচক গ্রহণ করা এবং পূর্ণসংখ্যা ফেরত দিতে পারেন মধ্যে কোন সুবিধাজনক উপায় (যেমন যদি এটা জরিমানা ইনপুট হতে জন্য
14
,"14"
বা[1,4]
)। - এনকোডার may আউটপুট স্ট্রিং দ্বারা পারেন মুদ্রণ তে এটি
stdout
বা দ্বারা ফিরে একটি স্ট্রিং, একটি তালিকা / অ্যারের অক্ষরের বা একটি তালিকা / সীমার মধ্যে পূর্ণসংখ্যার অ্যারের ; দয়া করে মনে রাখবেন সঙ্কেতমোচক একটি বিন্যাস ইনপুট হিসাবে পাবেন যেমন দ্বারা ফিরে এনকোডার , তাই এটি স্ট্রিং গ্রহণ করা উচিত মধ্যে একই বিন্যাসে যেমন । - স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ।
- যদি সম্ভব হয় তবে আপনার কোডটি কীভাবে কাজ করে এবং আপনার দাবি করা স্কোরটি সঠিক কেন তা ব্যাখ্যা করুন ।
উদাহরণ
ধরুন ।
- এনকোডার পায়
14
ইনপুট হিসাবে। এটি আউটপুট হতে পারে"qwerty"
।- সঙ্কেতমোচক একটি বিন্যাস পায়
"qwerty"
উদাহরণস্বরূপ, যেমন ইনপুট"tweyqr"
। এটি অবশ্যই আউটপুট14
(কোনও সুবিধাজনক বিন্যাসে)।
এনকোডার ফিরে পারতেন [113,119,101,114,116,121]
পাশাপাশি, যে ক্ষেত্রে সঙ্কেতমোচক পেয়েছি হবে (উদাহরণস্বরূপ) [116,119,101,121,113,114]
।
নোট করুন যে এনকোডার দ্বারা ফিরে আসা স্ট্রিং -এ প্রিন্টযোগ্য ASCII অক্ষরও অন্তর্ভুক্ত থাকতে পারে (তবে সর্বদা সীমার মধ্যে থাকে [0x00, ..., 0x7F]
)।