আপনার প্রোগ্রাম:
আপনি দুটি প্রোগ্রাম লিখবেন (উভয় একই ভাষায়)। স্টোরেজ প্রোগ্রামটি STDIN এর থেকে একটি স্ট্রিং নেয় এবং এটিকে কোথাও স্থির রাখে (নীচে দেখুন) এবং পরে ত্রুটি ছাড়াই প্রস্থান করে its পুনরুদ্ধার প্রোগ্রামটি কোনও ইনপুট নেয় না, সঞ্চিত স্ট্রিংটি পুনরুদ্ধার করে এবং এটি STDOUT এ মুদ্রণ করে।
অধ্যবসায়ের উদ্দেশ্য পরীক্ষা:
আপনার স্থানীয় মেশিনে স্টোরেজ প্রোগ্রামটি চালাতে সক্ষম হওয়া উচিত, তারপরে আপনার স্থানীয় মেশিনটিকে বিদ্যুত্চক্র করুন, তারপরে আপনার স্থানীয় মেশিনে পুনরুদ্ধার প্রোগ্রামটি কল করুন। আপনি যতক্ষণ না এই রিবুট পরীক্ষাটি পাস করেন ততক্ষণ আপনি স্ট্রিংটিকে স্ট্যাশ করতে পারেন (এমনকি ওয়েবেও)।
পরীক্ষার কেস:
স্টোরেজ তারপর পুনরুদ্ধার:
echo foo | Store
Retrieve
foo
পুনরাবৃত্তি স্টোরগুলি ওভাররাইট করা উচিত (একটি সেট (পদ্ধতির মতো):
echo foo | Store
echo bar | Store
Retrieve
bar
পুনরাবৃত্তি পুনরুদ্ধার অ-ধ্বংসাত্মক (একটি গেট () পদ্ধতির মতো):
echo foo | Store
Retrieve
foo
Retrieve
foo
যেকোন স্টোরেজ আহরণের আগে পুনরুদ্ধার:
আপনার এই সম্পর্কে চিন্তা করার দরকার নেই। আপনার পুনরুদ্ধার প্রোগ্রামটি ধরে নিতে পারে যে স্টোরেজ প্রোগ্রামটি অতীতে কোনও সময়ে চালিত হয়েছিল।
ইনপুট / আউটপুট নমনীয়তা।
লোকেরা আমাকে কঠোর STDIN / STDOUT থেকে স্ট্যান্ডার্ড আইও নিয়মে প্রসারিত করতে বলেছে। আমি এটি করতে পারি না কারণ এটি অনেকগুলি লফোলগুলি উপস্থাপন করবে। কিছু মানক IO বিকল্পের মধ্যে ইতিমধ্যে অবিচ্ছিন্ন উপায়ে ইনপুট সঞ্চিত রয়েছে, যেমন "প্রোগ্রামগুলি কোনও ফাইল থেকে ইনপুট নিতে পারে"। আমি কেবল কঠোর STDIN এবং STDOUT এর চেয়ে আরও নমনীয় হতে চাই, তবে প্লাবনগাড়িগুলি না খোলায়।
স্ট্যান্ডার্ড আইও নিয়মের থ্রেড থেকে আমি চেরি-বাছাই করছি যা চ্যালেঞ্জটি ভঙ্গ করে না:
আপনি চাইলে প্রোগ্রামগুলি জিইউআই প্রম্পট এবং কমান্ড-লাইন প্রম্পটের মাধ্যমে ইনপুট নিতে পারে
প্রোগ্রামগুলি স্ক্রিনে প্রদর্শন করে আউটপুট দিতে পারে এতে জিইউআই ডায়ালগ রয়েছে
প্রোগ্রামগুলি কমান্ড-লাইন আর্গুমেন্টের মাধ্যমে ইনপুট নিতে পারে
প্রোগ্রামগুলি STDERR এ আউটপুট দিতে পারে তবে এখনও ত্রুটিগুলি ফেলে দিতে পারে না।
আপনি যদি বিকল্প ব্যবহার করেন তবে এটি অবশ্যই ব্যবহারকারী-ইন্টারেক্টিভ হতে হবে। আপনার প্রোগ্রামটিতে তাদের ইনপুটটি পাইপ করা, আপনার প্রোগ্রামটি প্রদত্ত একটি প্রম্পটে টাইপ করে বা আপনার প্রোগ্রামের কমান্ড-লাইন-আর্গ হিসাবে ইনপুট টাইপ করার পাশাপাশি ব্যবহারকারীর অন্য কোনও কাজ করা উচিত নয়। স্ক্রিনে প্রদর্শিত বা আউটপুটটি STDOUT বা STDERR এ প্রেরণ করতে ব্যবহারকারীর আপনার পুনরুদ্ধার প্রোগ্রামটি চালানো ছাড়া আর কিছু করার দরকার নেই।
অনুমোদিত অনুমান:
- আপনার দুটি প্রোগ্রাম একই ডিরেক্টরিতে চালিত হবে
- আপনার প্রোগ্রামগুলিতে সেই ডিরেক্টরিটির জন্য পঠন-লেখার অনুমতি রয়েছে
- আপনার তৈরি করা ফাইলগুলি পুনরায় বুট থেকে বেঁচে থাকবে (অস্থায়ী দিরের মধ্যে নয়)
- একটি ট্রেলিং করা নিউলাইন যা স্ট্রিংয়ের অংশ ছিল না তা অনুমোদিত। অন্য কোনও পেছনের সাদা স্থান নেই
এটি কোড-গল্ফ এবং আপনার স্কোর উভয় প্রোগ্রামের বাইটের যোগফল।
Store
?
echo $@>x
এবংcat x
বৈধ?