মার্ক মাই মেল চ্যালেঞ্জটিতে আপনার সহায়তার জন্য ধন্যবাদ , পিপিসিজি-পোস্ট সফলভাবে উত্পন্ন বারকোডগুলির সাথে এর সমস্ত পার্সেল স্ট্যাম্প করেছে!
এখন, তাদের ডিকোড করার সময় এসেছে।
এই চ্যালেঞ্জে আপনার প্রোগ্রামটি, মার্ক মাই মেল চ্যালেঞ্জ থেকে উত্পন্ন একটি বারকোড দেওয়া হয়েছে , এটি ডিকোড করবে এবং এনকোডড পূর্ণসংখ্যাটি ফিরিয়ে দেবে।
তবে নজর রাখুন! বারকোড উল্টো দিকে হতে পারে ...
4-রাষ্ট্রের বারকোড
আপনি যদি এনকোডিং চ্যালেঞ্জটি মিস করেন তবে আপনার জানা দরকার যে আমরা কী ধরণের বারকোডের কথা বলছি। একটি 4-রাষ্ট্রীয় বারকোড চারটি সম্ভাব্য রাজ্যের বারগুলির একটি সারি যা প্রতিটি বেস -4 পূর্ণসংখ্যার প্রতিনিধিত্ব করে:
| |
Bar: | | | |
| |
Digit: 0 1 2 3
এএসসিআইআই-তে সরবরাহিত, বারকোডগুলি |
বারের অংশ উপস্থাপনের জন্য পাইপ ( ) অক্ষর এবং খালি অংশটি উপস্থাপনের জন্য একটি স্থান ( ) ব্যবহার করে পাঠ্যটির তিনটি লাইন গ্রহণ করবে । প্রতিটি বারের মধ্যে একটি একক স্থান থাকবে। একটি উদাহরণ বারকোড এর মতো দেখতে পারে:
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
বারকোডটিকে পূর্বে পূর্ণসংখ্যার এনকোডে রূপান্তর করতে, প্রতিটি বারটিকে তার সংশ্লিষ্ট বেস -4 অঙ্কে মানচিত্র করুন, এগুলি সংক্ষেপণ করুন এবং এটি দশমিক রূপান্তর করুন।
উল্টোদিকে যখন প্রতিটি বারকোড পৃথক বারকোডকেও উপস্থাপন করে, আমরা একটি স্টার্ট / স্টপ সিকোয়েন্সটি বাস্তবায়ন করি যাতে ওরিয়েন্টেশনটি গণনা করা যায়। এই চ্যালেঞ্জের উদ্দেশ্যে, আমরা অস্ট্রেলিয়া পোস্ট দ্বারা নির্দিষ্ট করা স্টার্ট / স্টপ সিকোয়েন্সটি ব্যবহার করব: প্রতিটি বারকোড একটি 1 0
ক্রম দিয়ে শুরু হয় এবং শেষ হয় ।
চ্যালেঞ্জ
আপনার কাজটি হল একটি ASCII 4-রাষ্ট্রীয় বারকোড দেওয়া, এটি বিশ্লেষণ করুন এবং এটি পূর্ণ এনকোড পূর্ণসংখ্যাটি ফিরিয়ে দিন - মূলত মার্ক মাই মেইলের বিপরীত ।
তবে জিনিসগুলি মশালার জন্য, একটি ধরা আছে - বারকোডটি উল্টো দিকে দেওয়া যেতে পারে। বাস্তব বিশ্বে যেমন, এটি শুরু / স্টপ অনুক্রমটি ব্যবহার করে সঠিক ওরিয়েন্টেশন নির্ধারণ করতে বারকোড পাঠক (আপনার প্রোগ্রাম) এ রেখে দেওয়া হবে ।
উদাহরণ:
নিম্নলিখিত বারকোড দেওয়া:
| | | | | | | | | | | | | | | | | | | |
আমরা পরিষ্কারভাবে দেখতে পাচ্ছি যে প্রথম এবং শেষ জোড়াটি অঙ্কগুলির হয় 0, 2
এবং না 1, 0
। এর অর্থ হ'ল বারকোডটি উল্টো দিকে রয়েছে - সুতরাং সঠিক ওরিয়েন্টেশন অর্জনের জন্য আমাদের অবশ্যই এটি 180 ডিগ্রি (কেবলমাত্র প্রতিটি বারে ফ্লিপ করবেন না) দ্বারা ঘোরানো উচিত :
| | | | | | | | | | | | | | | | | | | |
এখন, আমরা ডিকোডিং শুরু করতে পারি। আমরা প্রতিটি বারটিকে এর সাথে সম্পর্কিত বেস -4 অঙ্কে ম্যাপ করি, প্রারম্ভ / স্টপ সিকোয়েন্সগুলি উপেক্ষা করে কারণ এগুলি ডেটা এনকোড করে না।
| | | | | | | | | | | | | | | | | | | | - - 2 1 0 3 0 2 3 - -
আমরা এটিকে বেস -4 পূর্ণসংখ্যার সাথে সংযুক্ত করি 2103023
, তারপরে এটি 9419
চূড়ান্ত ফলাফলের জন্য দশমিক উপস্থাপনায় রূপান্তর করি ।
বিধি
- ইনপুটটি সর্বদা একটি বৈধ, 4-রাষ্ট্রীয় বারকোড হবে, যা বর্ণিত শুরু / স্টপ অনুক্রমের সাথে উপরে বর্ণিত হিসাবে ASCII তে রেন্ডার করা হয়েছে।
- আপনি ট্রেলিং স্পেস, বা স্ট্রিপড লাইনগুলির পাশাপাশি একটি পিছনে থাকা নতুন লাইনের জন্য অনুরোধ করতে পারেন - যে কোনও ফর্ম্যাটটি আপনার গল্ফিংয়ের জন্য উপযুক্ত।
- এটি সঠিক দিকনির্দেশনায় থাকতে পারে বা নাও থাকতে পারে - আপনার প্রোগ্রামটি অবশ্যই স্টার্ট / স্টপ ক্রমটি ব্যবহার করে এটি উল্টে পড়তে হবে কিনা তা নির্ধারণ করতে হবে।
- এটি বেস -4 পূর্ণসংখ্যায় শীর্ষস্থানীয় শূন্য-অঙ্কগুলি এনকোড করবে না।
- আপনি ইনপুটটিকে লাইনগুলির তালিকা হিসাবে বা নিউলাইনগুলির সাথে স্ট্রিং হিসাবে নিতে পারেন।
- বারকোড দ্বারা এনকোড করা ডেটা উপস্থাপন করে আউটপুটটি আপনার ভাষার স্ট্যান্ডার্ড পূর্ণসংখ্য বেসের একটি পূর্ণসংখ্যা হওয়া উচিত।
- যেহেতু ডাকটিকিট স্ট্যাম্পগুলি ছোট এবং সেগুলিতে খুব সামান্য কোড ফিট করতে পারে তাই আপনার কোডটি যতটা সম্ভব সংক্ষিপ্ত হওয়া দরকার: এটি একটি কোড-গল্ফ - যাতে সংক্ষিপ্ততম প্রোগ্রাম (বাইটে) জেতে!
পরীক্ষার মামলা
| | | | | | | | | | | | | |
= 4096 (উল্টানো)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
= 7313145 (উল্টানো)
| | | | | | | | | | | | | | | | | | | |
= 9419 (উল্টানো)
| | | | | | | | | | | | | | | | | | |
= 990 (উল্টানো হয়নি)
| | | | | | | | | | | | | | | | | | |
= 12345 (উল্টানো হয়নি)
[String]
, [{#Char}]
, [{Char}]
, [[Char]]
? দেওয়া যে String
সমতুল্য হয়{#Char}